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))
...