我正在使用 .Net 中的 ODBC 命令对象构建查询,并传入多个参数。针对 SQL Anywhere 执行查询时,出现以下错误。(相同的代码适用于 SQL Server)。
[System.Data.Odbc.OdbcException] = {"错误 [07002] [Sybase][ODBC 驱动程序][SQL Anywhere]没有足够的主机变量值"}
命令对象添加的参数数量与查询中的占位符 ('?') 相同。以下是未通过测试的简单查询和 C# 代码。
用于填充主机变量的 C# 代码
String queryText= @"DECLARE @loanuseraddress varchar(40), @loanid decimal Set @loanid = ? Set @loanuseraddress = ? select * from loan_assignments where loan_id = @loanid"
OdbcConnection connection = new OdbcConnection(request.ConnectionString);
OdbcCommand command;
command = new OdbcCommand(queryText, connection);
OdbcParameter param1 = new OdbcParameter("@loanid", OdbcType.Decimal);
param1.Value = request.Loan.LoanNumber;
command.Parameters.Add(param1);
OdbcParameter param2 = new OdbcParameter("@loanuseremployer", dbcType.VarChar);
param2.Value = appraisalCompanyUpdate.LoanUserEmployer;
if (param2.Value == null)
param2.Value = DBNull.Value;
command.Parameters.Add(param2);
connection.Open();
OdbcDataReader rows = command.ExecuteReader();