【问题标题】:ODBC call stored procedureODBC调用存储过程
【发布时间】: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();

标签: c# asp.net asp.net-web-api interbase


【解决方案1】:

尝试使用这样的东西:

OdbcCommand ODBCCommand = new OdbcCommand("EXECUTE PROCEDURE spInsertBooking", connection);

或以下,如果spInsertBooking 命令需要参数:

OdbcCommand ODBCCommand = new OdbcCommand("EXECUTE PROCEDURE spInsertBooking 1001, 1002, 1003", connection);

(项目以逗号分隔;使用单引号分隔字符串。)

更多信息可以在the InterBase documentation找到。

【讨论】:

    猜你喜欢
    • 2014-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-23
    相关资源
    最近更新 更多