ODBC调用存储过程
Posted
技术标签:
【中文标题】ODBC调用存储过程【英文标题】:ODBC call stored procedure 【发布时间】:2021-12-16 01:08:29 【问题描述】:我正在尝试调用存储过程,但我不太了解 ASP.NET 语法。
项目使用:
ASP.NET Core Web API ODBC 连接 没有实体框架OdbcConnection connection = new OdbcConnection(ConnectionString());
OdbcCommand ODBCCommand = new OdbcCommand("sp_insert_booking", connection);
ODBCCommand.CommandType = CommandType.StoredProcedure;
ODBCCommand.Parameters.AddWithValue("@project", "");
connection.Open();
ODBCCommand.ExecuteNonQuery();
例外
Exception has occurred: CLR/System.Data.Odbc.OdbcException
An exception of type 'System.Data.Odbc.OdbcException' occurred in System.Data.Odbc.dll but was not handled in user code: 'ERROR [HY000] [ODBC InterBase Driver][InterBase]Dynamic SQL Error
SQL error code = -104
Token unknown - line 1, char 0
sp_insert_booking'
我的问题是在项目结构中定义/创建spInsertBooking
的位置。
【问题讨论】:
存储过程驻留在数据库中。您的问题与创建或调用存储过程有关吗?如果您想调用现有的,CommandText 属性应该是存储过程的名称,在您的情况下为OdbcCommand ODBCCommand = new OdbcCommand("spInsertBooking");
你在后台使用什么数据库?为什么ODBC
- 似乎很传统,通常不是最佳选择...
我之前的评论忘记了连接参数,所以应该是OdbcCommand ODBCCommand = new OdbcCommand("spInsertBooking", connection);
@marc_s InterBase
请添加完整的异常详细信息,但您可能需要打开连接,在显示代码中您不这样做。在声明和实例化连接后添加connection.Open();
。
【参考方案1】:
尝试使用这样的东西:
OdbcCommand ODBCCommand = new OdbcCommand("EXECUTE PROCEDURE spInsertBooking", connection);
或以下,如果spInsertBooking
命令需要参数:
OdbcCommand ODBCCommand = new OdbcCommand("EXECUTE PROCEDURE spInsertBooking 1001, 1002, 1003", connection);
(项目以逗号分隔;使用单引号分隔字符串。)
更多信息可以在the InterBase documentation找到。
【讨论】:
以上是关于ODBC调用存储过程的主要内容,如果未能解决你的问题,请参考以下文章