【发布时间】:2014-04-11 09:06:22
【问题描述】:
我正在将 ADODB 应用程序转换为 ADO.Net,其中包含一个插入新行并返回自动增量值的命令,如下所示:-
INSERT INTO [MyDB].[dbo].[MyTable] (COLUMN1, COLUMN2) OUTPUT inserted.ID_PRIMARY
VALUES ('This', 'That')
然后可以获取 OUTPUT 值并离开。但是当我尝试使用 ADO.Net 时,就像这样:-
command_string = (as above)
Dim insert_command As SqlCommand = New SqlCommand(command_string, database_connection)
Dim output_parameter As SqlParameter = New SqlParameter("@inserted.ID_PRIMARY", SqlDbType.Int)
Dim transaction As SqlTransaction = database_connection.BeginTransaction(System.Data.IsolationLevel.Serializable)
insert_command.Transaction = transaction
output_parameter.Direction = ParameterDirection.Output
insert_command.Parameters.Add(output_parameter)
insert_command.ExecuteNonQuery()
transaction.Commit
返回错误:-
SqlException (0x80131904) '.' 附近的语法不正确
我很感激我可以使用存储过程来执行插入并检索返回值,正如here 所解释的那样,但我想知道是否有任何方法可以在没有存储过程的情况下完成?还是我忽略了一些微不足道的错误?
【问题讨论】:
标签: sql-server vb.net ado.net adodb