Asp.net 字符串后未闭合的引号-What';这个MSSQL查询有什么问题?
错误:Asp.net 字符串后未闭合的引号-What';这个MSSQL查询有什么问题?,asp.net,vb.net,Asp.net,Vb.net,错误: 字符串“”后未闭合的引号。 我想你应该在日期之前再加一个“' @TextBox1.Text& 此外,我强烈建议您验证文本框中的日期字符串,以下是一个未经测试的抽象示例: Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim SQLData As New System.Data.SqlClient.SqlConnection("Data
字符串“”后未闭合的引号。
我想你应该在日期之前再加一个
“'
@TextBox1.Text&
此外,我强烈建议您验证文本框中的日期字符串,以下是一个未经测试的抽象示例:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim SQLData As New System.Data.SqlClient.SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True")
Dim cmdSelect As New System.Data.SqlClient.SqlCommand("SELECT * FROM Table1 WHERE Date =" & TextBox1.Text & "'", SQLData)
SQLData.Open()
Dim dtrReader As System.Data.SqlClient.SqlDataReader = cmdSelect.ExecuteReader()
While dtrReader.Read()
For j As Integer = 1 To 31
Dim s As String = "s" & j
If dtrReader(s.ToString()).ToString() = "b" Then
Dim img As ImageButton = DirectCast(Panel1.FindControl(s.ToString()), ImageButton)
img.ImageUrl = "~/Images/booked.gif"
img.Enabled = False
End If
Next
End While
dtrReader.Close()
SQLData.Close()
End Sub
如果你只想按年、月等进行比较,你也应该阅读这篇文章,这是非常重要的。我认为应该是:
Dim input = TextBox1.Text
Dim dateVal As Date
Dim sqlDate As String
If Not Date.TryParse(input, dateVal) Then
Throw New FormatException("Input date was invalid.")
Else
Try
sqlDate = New SqlDateTime(dateVal).ToSqlString
Catch ex As Exception
Throw New FormatException("Input date was invalid.")
End Try
End If
Dim query = "SELECT * FROM Table1 WHERE Date = '" & sqlDate & "'"
我刚刚在Date=
之后添加了一个'
但请记住,这不是构建查询的好方法,而且会使代码容易出错。请尝试以下方法:
Dim cmdSelect As New System.Data.SqlClient.SqlCommand("SELECT * FROM Table1 WHERE Date ='" & TextBox1.Text & "'", SQLData)
检查第3行,其中的“'”现在显示错误:将nvarchar值“11-12-2010”转换为数据类型int时,转换失败。
...
Dim cmdSelect As New System.Data.SqlClient.SqlCommand("SELECT * FROM Table1 WHERE Date = @Date", SQLData)
cmdSelect.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Date", TextBox1.Text))
...