Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Прочетете данни от sql база данни с помощта на инструмент за избор на дата и час

Виждаме тези въпроси тук всеки ден. Те произтичат от същия проблем.

НИКОГА НЕ ИЗПОЛЗВАЙТЕ КОНКАТЕНАЦИЯ НА НИЗОВЕ ЗА СЪЗДАВАНЕ НА SQL ЗАЯВКИ.

Това е голям проблем. Разбира се, вече сте срещнали първия ефект. Как да конвертирате низове по приемлив начин в ефективния тип данни? Трябва да разрешите проблеми с анализирането с вградени кавички, правилно представяне на дати и десетични числа за основната система от бази данни. Но вторият и по-фин страничен ефект от конкатенацията на низове е SQL инжектиране (Това е само инструктивна връзка, защото SQL инжектирането е много голяма тема)

За да решите този вид проблеми, единственият приемлив начин е да използвате PARAMETERS.
Това означава, че машината на базата данни е тази, която решава по ефективен начин въпроса, имате нужда от низ с контейнери за параметри (@something) и колекция от параметри с точния тип данни за стойността на параметъра.

Така че вашият код трябва да се промени по този начин

Dim strSQL As String = "SELECT EMP_ID,EMP_NAME,AT_STATUS,AT_REMARK " + 
                       "FROM ATTENDANCE WHERE AT_DATE = @editdate " + 
                       "ORDER BY EMP_NAME ASC"
Using con = new SqlConnection("constring_here")
    con.Open()
    Using cmd = new SqlCommand(strSQL, con)
        cmd.Parameters.AddWithValue("@editdate", DTPEDITAT.Value)
        ' do whatever you want with the command '
        ' like ExecuteReader or use a DataAdapter to fill datasets'
    End Using
End Using


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server срещу NoSQL

  2. Използване на UNION ALL в STUFF / XML път

  3. Как да вмъкнете редове в таблица на SQL Server чрез GUI за редактиране на редове на таблица - SQL Server / TSQL урок, част 101

  4. SQL колона за търсене за всяка променлива в CSV низ

  5. Объркан относно реда за обработка на логическите заявки на Ицик Бен-Ган в неговата книга за SQL Server 2005 и книгата за SQL Server 2008