我很少有应用程序使用Sybase并使用Sybase.Data.AseClient库的15.5版本而没有任何问题。最近我将Sybase提供程序更新到15.7版并开始接收异常。下面是简化的C#代码,它使用查询中的declare语句以及添加到AseCommand对象的AseParameter。代码正在使用库15.5(2.155.8000.0),但是返回AseException“必须使用库15.7(2.157.104.0)声明变量'@customer'”
任何信息或想法?
string sql = @"
declare @purchaseDate datetime
set @purchaseDate = convert(varchar(10), getdate(), 101)
select count(*) from purchases where customer = @customer and purchaseDate > @purchaseDate
";
using (AseConnection cnn = new AseConnection(cnnStr))
{
cnn.Open();
using (AseCommand cmd = cnn.CreateCommand())
{
cmd.CommandType = CommandType.Text;
cmd.CommandText = sql
AseParameter par = cmd.CreateParameter();
par.ParameterName = "@customer";
par.Direction = ParameterDirection.Input;
par.AseDbType = AseDbType.VarChar;
par.Size = 30;
par.Value = customerId;
cmd.Parameters.Add(par);
int cnt = Convert.ToInt32(cmd.ExecuteScalar());
}
}