ExecuteNonQuery没有响应?

时间:2014-12-25 12:59:40

标签: c# oracle

我想更新我桌面上的某些列,但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;
}

由于

4 个答案:

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