下面代码报错ORA-01008: 并非所有变量都已绑定,网上找了一圈,也没解决,高手帮忙。String sql = "";
for (int i = 0; i < clDs.Tables[0].Rows.Count; i++)
{
sql = @"insert into vh_calls(id_call) values( :id_call)"; OracleConnection connection = new OracleConnection(constr);
connection.Open();
OracleCommand command = null;
command = new OracleCommand(sql, connection);
command.Parameters.AddWithValue("id_call", clDs.Tables[0].Rows[i][0] == DBNull.Value ? DBNull.Value : clDs.Tables[0].Rows[i][0]); try
{
command = new OracleCommand(sql, connection);
command.ExecuteNonQuery();
command.Dispose(); }
catch (System.Exception ex)
{
throw ex;
}
connection.Close();
connection.Dispose();
}
for (int i = 0; i < clDs.Tables[0].Rows.Count; i++)
{
sql = @"insert into vh_calls(id_call) values( :id_call)"; OracleConnection connection = new OracleConnection(constr);
connection.Open();
OracleCommand command = null;
command = new OracleCommand(sql, connection);
command.Parameters.AddWithValue("id_call", clDs.Tables[0].Rows[i][0] == DBNull.Value ? DBNull.Value : clDs.Tables[0].Rows[i][0]); try
{
command = new OracleCommand(sql, connection);
command.ExecuteNonQuery();
command.Dispose(); }
catch (System.Exception ex)
{
throw ex;
}
connection.Close();
connection.Dispose();
}
解决方案 »
- 使textbox只能输入一定区间的数据
- c#新手求助,在线等啊......
- 遇到一个函数要转换
- C#有没有在一个线程中放单例对象的线程类
- [winform]如何取得数据库中的所有表名
- ICSharpCode.SharpZipLib使用问题,解压。
- 模拟人工操作,用哪个语言更容易呀
- 各位好,请问如何获得字符A的ASCII,返过来将相应的ASCII转变为字符,谢谢!!
- Form有Un_Load事件吗?
- .net SDK 1.0和.net SDK 1.1装一起吗?(win2k advancesever + vs.net2002 +.net SDK1.0,现在可以装一个.netsdk1.1吗?)谢谢
- 多线程属性累加访问,问题
- c# 事务问题
修改:using (OracleConnection connection = new OracleConnection(constr))
{
connection.Open();
using (OracleCommand command = new OracleCommand(sql, connection))
{
foreach (DataRow row in clDs.Tables[0].Rows)
{
command.Parameters.AddWithValue("id_call", row[0] == DBNull.Value ? DBNull.Value : rows[0]);
command.ExecuteNonQuery();
command.Parameters.Clear();
}
}
connection.Close();
}
try
{
command = new OracleCommand(sql, connection);//去掉
command.ExecuteNonQuery();
command.Dispose(); }
如果要优化,那么就应该外部添加一个空值参数id_call,
循环遍历中执行command.Parameters["id_call"] = ...