的字符无效;使用阅读器.下一个结果

本文关键字:下一个 结果 字符 无效 | 更新日期: 2023-09-27 18:31:31

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 不允许读取器。下一个使用绑定变量的结果?为什么我得到无效字符??

的字符无效;使用阅读器.下一个结果

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

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

OracleCommand.Parameters Property

在由 Oracle命令的CommandType.Text,你必须在参数名称之前 带冒号(:)。但是,在存储过程中,或者在引用时 到代码中其他位置的命名参数(例如,在添加 OracleParameter 对象到 Parameters 属性),不要在 带有冒号 (:)..NET Framework Data Provider for Oracle 会自动提供冒号。