字符无效;使用reader.NextResult

时间:2013-09-16 13:01:54

标签: c# sqldatareader

string sql = @"SELECT sum(subtotal) FROM table1 WHERE clientid=:v1;" +
"SELECT * FROM table2  WHERE clientid = :v2 "
cmd = DBConnection.GetCommand(); 
cmd.CommandText = sql;
cmd.Parameters.Clear();
cmd.Parameters.Add(":v1", "Name1");
cmd.Parameters.Add(":v2", "Name2");
OracleDataReader reader = cmd.ExecuteReader(); //Error: Invalid Character
while (reader.Read())
{
  ..results from first query
}
reader.NextResult();
while (reader.Read())
{
  ..results from second query
}

.NET不允许使用绑定变量的reader.NextResults?为什么我得到无效字符?

1 个答案:

答案 0 :(得分:4)

在向命令添加参数时删除:

cmd.Parameters.Add("v1", "Name1");
cmd.Parameters.Add("v2", "Name2");

OracleCommand.Parameters Property

  

在由a调用的SQL语句中使用命名参数时   CommandType.Text的OracleCommand,必须在参数名称之前   用冒号(:)。 但是,在存储过程中,或在引用时   到代码中其他位置的命名参数(例如,添加时)   OracleParameter对象的参数属性),不在前面   带冒号(:)的命名参数。 .NET Framework数据提供程序for Oracle自动提供冒号。