Mysql 查询在 vb.net 上显示空结果

Mysql query showing empty result on vb.net

我有一个 vb.net 应用程序,它使用 mysql 作为数据库。

我遇到一个问题,就是查询的结果总是空的。

下面是我的代码。

Protected Sub btnCheck_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnCheck.Click

    Dim con As String = ConfigurationManager.ConnectionStrings("prcConnectionString").ConnectionString
    Dim Sql As New MySqlConnection(con)
    Dim reader2 As Object

    Sql.Open()
    Dim theQuery2 As String = "Select max(shipmentdate) from prc.tbsrparts t where Substring(partsn, 17, 11) =' " & tbPartSN.Text.Substring(16, 11) & "' "  'get latest shipment date from database

    Dim command2 As New MySqlCommand(theQuery2, Sql)

    reader2 = command2.ExecuteScalar
    lbl90days.Text = reader2.ToString


End Sub

结果应显示在标签 lbl90days 中。

但我的总是空的。

谁能指导我?

提前致谢。

试试这个:

Protected Sub btnCheck_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnCheck.Click
    Dim con As String = ConfigurationManager.ConnectionStrings("prcConnectionString").ConnectionString
    Dim Sql As New MySqlConnection(con)
    Dim reader2 As Object

    Sql.Open()
    Dim theQuery2 As String = "Select max(shipmentdate) from prc.tbsrparts t where Substring(partsn, 16, 11) = @PartSN"

    Dim command2 As New MySqlCommand(theQuery2, Sql)
    command2.CommandType = CommandType.Text
    command2.Parameters.AddWithValue("@PartSN", tbPartSN.Text.Substring(16, 11))        

    reader2 = command2.ExecuteScalar
    lbl90days.Text = reader2.ToString
    Sql.close()
End Sub

能够解决

Dim PartSN As String = tbPartSN.Text.Substring(16, 11)

并将Query2代码替换为

Dim theQuery2 As String = "SELECT Max(shipmentdate) FROM prc.tbsrparts t WHERE Substring(partsn, 17, 11) = '" + PartSN.ToString + "'"