Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 数据适配器更新命令_C#_Database - Fatal编程技术网

C# 数据适配器更新命令

C# 数据适配器更新命令,c#,database,C#,Database,我正在使用ODP.NET提供程序,使用DataAdapter和DataTable编辑/添加Oracle db表中的数据 DataSet ds = new DataSet("report"); DataTable dt = new DataTable("report"); adptr = new OracleDataAdapter(); string myCmd = "select * from report"; OracleCommand _cmd = new Orac

我正在使用ODP.NET提供程序,使用
DataAdapter
DataTable
编辑/添加Oracle db表中的数据

DataSet ds = new DataSet("report");
DataTable dt = new DataTable("report");
adptr = new OracleDataAdapter();
string myCmd = "select * from report";            

OracleCommand _cmd = new OracleCommand(myCmd, myDbConnection);

adptr.SelectCommand = _cmd;
adptr.Fill(dt);
ds.Tables.Add(dt);
在此之后,我将数据表中的数据绑定到网格并进行编辑,然后按如下方式保存:

OracleCommandBuilder _cmdBld = new OracleCommandBuilder(adptr);
adptr.Update(ds, "report");
string myCmd = 
    "select r.id, u.username, r.creation_date, r.owner 
     from report r inner join users u on r.user_id == u.id";
现在一切都很好,一切正常,每次修改都会提交给数据库。 但我的问题是,当我从多个表中获取数据时。 像这样:

OracleCommandBuilder _cmdBld = new OracleCommandBuilder(adptr);
adptr.Update(ds, "report");
string myCmd = 
    "select r.id, u.username, r.creation_date, r.owner 
     from report r inner join users u on r.user_id == u.id";
我知道我可以在保存之前手动编写
DataAdapter
的更新命令(
DataAdapter.UpdateCommand
),但我不确定如何编写。你能给我指路吗


谢谢

查看MSDN中提供的示例。我猜OracleDataAdapter使用相同的逻辑。

以下是指定链接的更新命令生成部分

// Create the UpdateCommand.
command = new SqlCommand("UPDATE Customers SET CustomerID = @CustomerID, "+
     "CompanyName = @CompanyName WHERE CustomerID = @oldCustomerID", connection);
// Add the parameters for the UpdateCommand.
command.Parameters.Add("@CustomerID", SqlDbType.NChar, 5, "CustomerID");
command.Parameters.Add("@CompanyName", SqlDbType.NVarChar, 40, "CompanyName");
SqlParameter parameter = command.Parameters.Add("@oldCustomerID", 
     SqlDbType.NChar, 5, "CustomerID");
parameter.SourceVersion = DataRowVersion.Original;    
adapter.UpdateCommand = command;

谢谢但是,如果像我的示例中那样,数据是从两个连接的表提供的,insert或update命令会是什么样子呢?