C# Oracle更新命令不工作
我试过下面的代码C# Oracle更新命令不工作,c#,oracle,C#,Oracle,我试过下面的代码 ora.Open(); OracleCommand cmd = new OracleCommand() ; cmd.Connection= ora; cmd.CommandTimeout = 0; cmd.CommandText = "update test set name= :name"; OracleParameter name = new OracleParameter("name", OracleDbType.Varchar2); cmd.BindByName =
ora.Open();
OracleCommand cmd = new OracleCommand() ;
cmd.Connection= ora;
cmd.CommandTimeout = 0;
cmd.CommandText = "update test set name= :name";
OracleParameter name = new OracleParameter("name", OracleDbType.Varchar2);
cmd.BindByName = true;
name.Value = "test";
cmd.Parameters.Add(a);
cmd.ExecuteNonQuery();
ExecuteOnQuery不工作,并且没有错误。发生了什么?
我使用的是Visual Studio 2012和Oracle Express 11g您正在添加一个名为
a
的参数,而不是您创建的参数。试试这个:
ora.Open();
using (OracleCommand cmd = new OracleCommand())
{
cmd.Connection = ora;
cmd.BindByName = true;
cmd.CommandText = "update test set name = :name";
OracleParameter name = new OracleParameter("name", OracleDbType.Varchar2);
name.Value = "test";
cmd.Parameters.Add(name); // add the name parameter, not "a" object.
cmd.ExecuteNonQuery();
}
您正在添加名为
a
的参数,而不是您创建的参数。试试这个:
ora.Open();
using (OracleCommand cmd = new OracleCommand())
{
cmd.Connection = ora;
cmd.BindByName = true;
cmd.CommandText = "update test set name = :name";
OracleParameter name = new OracleParameter("name", OracleDbType.Varchar2);
name.Value = "test";
cmd.Parameters.Add(name); // add the name parameter, not "a" object.
cmd.ExecuteNonQuery();
}
也许你错过了准备功能 尝试添加
cmd.Prepare()
紧跟在cmd.Parameters.Add(name)之后代码>可能您缺少准备功能
尝试添加
cmd.Prepare()
紧跟在cmd.Parameters.Add(name)之后代码>为什么创建名为name的参数,然后添加名为a的参数(这是从哪里来的?)为什么创建名为name的参数,然后添加名为a的参数(这是从哪里来的?)对我不起作用。使用insert命令可以,但执行ExecuteNonQuery not advance时使用update。对我不起作用。使用insert命令可以,但执行ExecuteNonQuery not advance时使用update。