简体   繁体   English

ExecuteNonQuery没有响应?

[英]ExecuteNonQuery doesn't respond?

I want to update some columns on my table but ExecuteNonQuery doesn't respond (Timeout). 我想更新表中的某些列,但是ExecuteNonQuery不响应(超时)。 Did I do something wrong? 我做错什么了吗?

Notes: in the database table, id is integer, F1 varchar2 and the parameters I am sending are string and int. 注意:在数据库表中, 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;
}

Thanks 谢谢

可以通过在Oracle开发人员或计算机上运行的任何其他IDE上 提交或回滚未决事务来解决此问题。

You're mixing up your parameter names. 您正在混淆参数名称。 There is no parameter named "F1" in your query, use "yd". 查询中没有名为“ 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);

I found that is because of other program like toad locks the query. 我发现这是因为蟾蜍等其他程序会锁定查询。 After commiting all thing in toad, everything is solved. 将所有东西都投入蟾蜍后,一切都解决了。

Thanks for all for helping. 感谢大家的帮助。 I love you guys, i like brainstorming :) 我爱你们,我喜欢集思广益:)

            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();

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM