我想更新我桌面上的某些列,但ExecuteNonQuery
没有响应(超时)。我做错了吗?
注意:在数据库表中,id
是整数,F1
varchar2,我发送的参数是string和int。
try {
using (OracleConnection con = new OracleConnection(ConString)) {
con.Open();
OracleCommand cmd = new OracleCommand();
cmd.Connection = con;
cmd.CommandText = "UPDATE DB.Table "+
"SET F1= :yd" +
"WHERE ID = :id";
cmd.CommandType = CommandType.Text;
cmd.Parameters.Add("yd", yd);
cmd.Parameters.Add("id", id);
cmd.ExecuteNonQuery();
con.Close();
return true;
}
}
catch (Exception ex) {
return false;
}
由于
答案 0 :(得分:1)
可以通过在您的Oracle开发人员或您的计算机上运行的任何其他 IDEs 上提交或回滚待处理的交易来解决此问题。 >
答案 1 :(得分:0)
您正在混淆参数名称。没有名为" F1"在您的查询中,使用" yd"。
cmd.CommandText = "UPDATE DB.Table "+
"SET F1= :yd" +
"WHERE ID = :id";
cmd.CommandType = CommandType.Text;
cmd.Parameters.Add("yd", yd);
cmd.Parameters.Add("id", id);
答案 2 :(得分:0)
我发现这是因为其他程序像toad锁定了查询。在将所有东西都归入蟾蜍之后,一切都解决了。
感谢大家的帮助。我爱你们,我喜欢头脑风暴:)
答案 3 :(得分:-1)
cmd.Connection = con;
string qry = "UPDATE DB.Table "+"SET F1= @yd" +"WHERE ID = @id";
OracleCommand cmd = new OracleCommand(qry,con);
cmd.Parameters.AddWithValue("@yd", yd);
cmd.Parameters.AddWithValue("@id", id);
cmd.ExecuteNonQuery();