【问题标题】:SELECT statement with JOIN and WHERE clause not returning any data带有 JOIN 和 WHERE 子句的 SELECT 语句不返回任何数据
【发布时间】:2013-01-07 00:18:56
【问题描述】:

我对需要在 datagridview 上查看的数据有疑问。下面是我的代码:

    Public Class Form3

    Private Sub Form3_Load(sender As Object, e As EventArgs) Handles MyBase.Load

Dim CONNECT_STRING As String = (...)

Dim cnn As New OleDbConnection(CONNECT_STRING)

        cnn.Open()

        MsgBox(status_narocila.value)

        Dim sql As String = "SELECT artikel.st_artikla, artikel.naziv_artikla, narocilo.kolicina, narocilo.barva_tiska, narocilo.izvedba, narocilo.opombe, narocilo.datum_narocila, narocilo.rok_izdelave, narocilo.status, narocilo.ID FROM (narocilo INNER JOIN artikel ON narocilo.id_artkla = artikel.ID) WHERE(narocilo.ID = '" & status_narocila.value & "')"

        Dim cmd As New OleDbCommand(sql, cnn)

        Dim da As New OleDbDataAdapter(cmd)

        Dim ds As New DataSet

        da.Fill(ds, "artikel")

        cnn.Close()

        DataGridView1.DataSource = ds.Tables("artikel")

    End Sub
End Class

status.narocila.value 是整数,我已经对其进行了测试并从中获得了正确的值。没有WHERE 子句,代码运行良好。

【问题讨论】:

  • 尝试.ToString()status_narocila.value.ToString()
  • 不应该需要空格 WHERE( 到 WHERE (。我更倾向于相信你不需要 ' 如果 ID 是数字数据类型。那么 narocilo 的数据类型是什么.ID?
  • narocilo.ID 字段的数据库类型是什么?
  • 你测试过,并在sql字符串后面放了断点。并在 SQL Server Management Studio 中运行

标签: sql winforms datagridview


【解决方案1】:
= '" & status_narocila.value & "')"

应该是

= " & status_narocila.value & ")"

数字数据类型上没有 '。

【讨论】:

    【解决方案2】:

    如果narocilo.ID 也是整数,那么问题是您在整数字段上使用文本限定符。

    尝试将您的 WHERE 子句更改为:

    WHERE(narocilo.ID = " & status_narocila.value & ")"

    【讨论】:

      猜你喜欢
      • 2015-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-15
      • 2021-03-14
      • 2018-03-08
      • 2013-12-26
      相关资源
      最近更新 更多