Vi ser dessa frågor här varje dag. De härrör från samma problem.
ANVÄND ALDRIG STRING CONCATENATION FÖR ATT BYGGA SQL-FRÅGOR.
Det är ett stort problem. Naturligtvis har du redan mött den första effekten. Hur konverterar man strängar på ett acceptabelt sätt till den effektiva datatypen? Du behöver lösa parsningsproblem med inbäddade citattecken, korrekt representation av datum och decimaltal för det underliggande databassystemet. Men den andra och mer subtila bieffekten av strängsammansättning är SQL-injektion (Detta är bara en lärorik länk eftersom SQL Injection är ett mycket stort ämne)
För att lösa den här typen av problem är det enda accepterade sättet att använda PARAMETERS.
Detta betyder att det är databasmotorn som på ett effektivt sätt löser frågan, du behöver en sträng med parameterplatshållare (@någonting) och en samling av parametrar med den exakta datatypen för parameterns värde.
Så din kod bör ändras på detta sätt
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