【问题标题】:what is wrong with this select query这个选择查询有什么问题
【发布时间】:2014-01-05 06:24:57
【问题描述】:

这是我在 vb.net 中的 sql server 选择查询。

Try
    retrieveRecord("ProductBasicInfo", "ProdID = " & txtProdID.Text.Trim)
    DataGridView1.DataSource = dsSql.Tables("ProductBasicInfo")
    MessageBox.Show("ok")
Catch ex As Exception
    MessageBox.Show(ex.Message)
End Try

这是接收查询的函数:

Public Sub retrieveRecord(ByVal tblname As String, ByVal parameter As String)

    Try
        If dsSql.Tables.Contains(tblname) Then
            dsSql.Tables.Remove(tblname)
        End If

        cmdSql1.CommandText = "select * from " & tblname & "where " & parameter & ""
        cmdSql1.Connection = Connect()
        daSql.SelectCommand = cmdSql1
        daSql.Fill(dsSql, tblname)

    Catch ex As Exception
        MessageBox.Show(ex.Message)

    End Try


End Sub

它给出了错误,即=附近的语法不正确?请指导我在哪里做错了。

【问题讨论】:

  • 您在tblnamewhere 之间缺少一个空格。

标签: sql vb.net


【解决方案1】:

在生成 SQL 语句时

cmdSql1.CommandText = "select * from " & tblname & "where " & parameter & ""

您忽略了在表名和 WHERE 子句之间插入空格....

cmdSql1.CommandText = "select * from " & tblname & " where " & parameter & ""

...另外,结尾 & "" 没有实际意义,无关紧要。

【讨论】:

  • 哦,我对此一无所知。感谢 EkE、MPelletier 的热心指导。谢谢。
【解决方案2】:

您需要在 tblname 和 where 之间留一个空格,并且您可能需要在 txtProdID.Text.Trim 周围加上引号。

【讨论】:

  • 如果值为数字,这些引号在技术上是不需要的
  • 但如果该字段是 varchar 则不会返回任何内容
猜你喜欢
  • 1970-01-01
  • 2011-09-29
  • 2011-10-13
  • 2010-09-07
  • 2010-10-04
  • 2011-01-15
  • 2021-05-08
相关资源
最近更新 更多