我正在尝试使用 SQL 查询检索表中的最后一个 ID,然后将结果与 TextBox 值(它是一个字符串)一起附加:
Dim searchforID = New OleDbCommand("select ID from [table1] where ID = (select max(id) from [table1])", con)
Dim variable1 = searchforID + TextBox1.Text
但它抛出了这个错误:
编译器错误消息:BC30452:未为类型“System.Data.OleDb.OleDbCommand”和“String”定义运算符“+”。
试图修复它
-- 所以我尝试像这样转换返回的记录 ID:Dim variable1 = Convert.ToString(searchforID) + TextBox1.Text
现在没有错误但不幸的是返回的结果是“System.Data.OleDb.OleDb”+文本框值,例如:
System.Data.OleDb.OleDbtest
-- 我也想过将返回的记录 ID 转换为整数会引发错误:
异常详细信息:System.InvalidCastException:无法将“System.Data.OleDb.OleDbCommand”类型的对象转换为“System.IConvertible”类型。
那么为什么检索最后一条记录 ID 会失败呢?我的 SQL 查询可能是假的吗?
谢谢你。
如果有人发现它有用,那么直接解决问题:
Dim searchforID = New OleDbCommand("select MAX(ID) from [table1]", con)
Dim variable1 = searchforID.ExecuteScalar() & TextBox1.Text
下面的答案和评论也有有用的信息。