查询 "must declare scalar variable"
Query "must declare scalar variable"
执行命令后我的 vb.net 例程出错,我得到一个错误:
must declare @nameD variable
SQL服务器中的table是:
name: TAB,
ID integer unique,
NameD varchar(50)
我不明白为什么会出现此错误。
是因为我在本地系统上使用了 OLEDb 吗?我只是将项目转换为 SQL 服务器,还是查询有误?
请注意,我使用这些参数打开连接:
Dim strsql As String = ""
Dim strConn As String = "Provider=MSOLEDBSQL;Server=0.0.0.0;Database=****;UID=sa;PWD=***;"
Dim Conn As New OleDbConnection
这是函数
Public Function Ins() as integer
strsql = "INSERT INTO TAB (nameD) VALUES (@nameD)"
Dim CMD as New OleDbCommand(strsql, Conn)
With CMD
.Parameters.Add("@nameD", OleDbType.VarChar).Value = "aaa"
.ExecuteNonQuery()
End With
CMD = Nothing
Dim COnt As Long
Dim cmdC As OleDbCommand = New OleDbCommand("SELECT@@IDENTITY", Conn)
COnt = CType(cmdC.ExecuteScalar, Integer)
Return COnt
end function
我什至尝试过
CMD.Parameters.AddWithValue("@nameD", "aaa")
我不确定您为什么要使用 OleDb
连接到 SQL 服务器而不是 SqlClient
但是,如果您要这样做,我不会认为支持命名参数。您需要在 SQL 代码中使用通用参数占位符:
strsql = "INSERT INTO TAB (nameD) VALUES (?)"
执行命令后我的 vb.net 例程出错,我得到一个错误:
must declare @nameD variable
SQL服务器中的table是:
name: TAB,
ID integer unique,
NameD varchar(50)
我不明白为什么会出现此错误。
是因为我在本地系统上使用了 OLEDb 吗?我只是将项目转换为 SQL 服务器,还是查询有误?
请注意,我使用这些参数打开连接:
Dim strsql As String = ""
Dim strConn As String = "Provider=MSOLEDBSQL;Server=0.0.0.0;Database=****;UID=sa;PWD=***;"
Dim Conn As New OleDbConnection
这是函数
Public Function Ins() as integer
strsql = "INSERT INTO TAB (nameD) VALUES (@nameD)"
Dim CMD as New OleDbCommand(strsql, Conn)
With CMD
.Parameters.Add("@nameD", OleDbType.VarChar).Value = "aaa"
.ExecuteNonQuery()
End With
CMD = Nothing
Dim COnt As Long
Dim cmdC As OleDbCommand = New OleDbCommand("SELECT@@IDENTITY", Conn)
COnt = CType(cmdC.ExecuteScalar, Integer)
Return COnt
end function
我什至尝试过
CMD.Parameters.AddWithValue("@nameD", "aaa")
我不确定您为什么要使用 OleDb
连接到 SQL 服务器而不是 SqlClient
但是,如果您要这样做,我不会认为支持命名参数。您需要在 SQL 代码中使用通用参数占位符:
strsql = "INSERT INTO TAB (nameD) VALUES (?)"