表名称:tblStocks
列名称:Item_Code
示例如下:
商品代码
110001
220001
110002
220001
110003
代码:
sql = "SELECT LAST(Item_Code) as @item_code FROM tblStocks where
item_code LIKE '11%'"
cmd = New OleDbCommand(sql, cn)
dr = cmd.ExecuteReader
txtAvailable.Text = dr("@item_code").ToString
需要使用 SQL 显示最新的项目代码并将其显示在以 “11”开头的 TextBox 上
由于查询返回单个值,您可以使用 ExecuteScalar。
您可以在新项目中快速尝试一下,只是为了进行实验,使用类似的东西(有一个名为“txtAvailable”的文本框):
Imports System.Data.OleDb
Public Class Form1
Const CONNSTR As String = "your connection string here"
Function GetAvailable() As String
Dim available = ""
Using conn As New OleDbConnection(CONNSTR)
Dim sql = "SELECT LAST(Item_Code) AS ItemCode FROM tblStocks WHERE Item_Code LIKE '11*' ORDER BY Item_Code"
Using cmd = New OleDbCommand(sql, conn)
Dim result = cmd.ExecuteScalar()
If result IsNot Nothing Then
available = CStr(result)
End If
End Using
End Using
Return available
End Function
Sub ShowAvailable()
txtAvailable.Text = GetAvailable()
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
ShowAvailable()
End Sub
End Class
避免使用非字母数字字符,例如“@”,用于别名等内容。保持简单。
在该示例中,如果 ExecuteScalar 返回 Nothing,则查询没有返回任何值,因此您可能需要对此采取行动。
如果查询没有返回值,但您确定使用了完全正确的列名,则可能使用了错误的数据库文件。再次检查连接字符串。
始终使用
Using
结构进行数据库连接,以便在使用后立即正确处理它们 - 所有这些都旨在以这种方式正常工作。