Không sử dụng nối chuỗi để tạo các truy vấn sql của bạn, KHÔNG BAO GIỜ!
Bạn đang mở để tiêm sql, không có lý do gì cho việc đó. Thay vào đó, hãy sử dụng các tham số sql:
Dim dateFrom as Date
Dim dateTo as Date
Dim validFromDate = Date.TryParse(Txtfromyear_reprt.Text.Trim(), dateFrom)
Dim validToDate = Date.TryParse(Txttoyear_reprt.Text.Trim(), dateTo)
Bây giờ thoát khỏi phương pháp này với một thông báo có ý nghĩa nếu người dùng không cung cấp ngày hợp lệ. Bạn có thể kiểm tra validFromDate
và validToDate
là boolean. Phần còn lại của mã được thực thi If validFromDate AndAlso validToDate
:
Dim str As String = "select * from MYTABLE where Year >= @fromyear and Year <= @toyear"
da = New SqlDataAdapter(str, conn)
da.SelectCommand.Parameters.Add("@fromyear", SqlDbType.DateTime).Value = dateFrom
da.SelectCommand.Parameters.Add("@toyear", SqlDbType.DateTime).Value = dateTo
' now you can use da.Fill(ds, "MYTABLE") safely
Tôi vừa thấy bạn sử dụng varchar
để lưu trữ datetimes
. Tại sao? Sửa nó trong cơ sở dữ liệu.