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。