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?为什么我得到无效字符?
答案 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自动提供冒号。