gpt4 book ai didi

sql - 检索具有字母数字格式的自动编号 ID

转载 作者:行者123 更新时间:2023-12-01 23:47:23 25 4
gpt4 key购买 nike

如何检索一个 ID 字段,它是一个自动编号并且已被赋予字母数字 Format,例如“ER001”?

我在后端使用 Access 和 VB 2010。

到目前为止,我的代码只返回 ID 列的最后一个数字,例如 1 而不是 ER001

Dim SQL As String = "SELECT ID FROM ReqItemList WHERE ReqItem = " & inputin & " "

最佳答案

我认为这里的混淆是因为自动编号字段“具有字母数字格式”。如果表格设计是这样的

DesignView.png

然后 ID 字段的 Format 属性 "ER"000 将导致它在 Access 表单和数据 TableView 中显示为类似于 ER001

DatasheetView.png

但是,在设计 View (第一个屏幕截图)中,请注意该字段仍然是一个自动数字字段,并且它的“字段大小”是长整型。值本身只是数字;它们只是在 Access 用户界面中被格式化为字母数字。

因此,您在 VB.NET 应用程序中看到的行为是“正常的”。如果您运行查询

Dim SQL As String = "SELECT ID FROM ReqItemList WHERE ReqItem=?"
Using cmd = New OleDbCommand(SQL, con)
cmd.Parameters.Add("?", OleDbType.VarWChar).Value = "foo"
Dim rtn = cmd.ExecuteScalar()
End Using

然后您将获得整数值 1,而不是字符串值 "ER001"。如果您希望值在 VB.NET 表单中显示为 ER001,您需要在 VB.NET 代码中应用格式。

同样,如果您想按 ID 搜索,则必须提供未格式化的数值。那就是

Dim SQL As String = "SELECT ReqItem FROM ReqItemList WHERE ID=?"
Using cmd = New OleDbCommand(SQL, con)
cmd.Parameters.Add("?", OleDbType.Integer).Value = 1
Dim rtn As String = cmd.ExecuteScalar()
End Using

将返回 foo,而

Dim SQL As String = "SELECT ReqItem FROM ReqItemList WHERE ID=?"
Using cmd = New OleDbCommand(SQL, con)
cmd.Parameters.Add("?", OleDbType.VarWChar).Value = "ER001"
Dim rtn As String = cmd.ExecuteScalar()
End Using

将因“标准表达式中的数据类型不匹配”而失败,因为 ID 实际上是一个数字,而不是文本值。

关于sql - 检索具有字母数字格式的自动编号 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28385535/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com