我正在尝试使用我的网络表单中已更改的数据更新我的SQL后端。
该数据最初是从SQL中提取的,如此
string cs = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();
SqlConnection connection = new SqlConnection(cs);
SqlCommand command = new SqlCommand("my.storedprocedure", cs);
command.CommandType = CommandType.StoredProcedure;
command.Parameters.Add(new SqlParameter("@customerID", custid));
command.CommandTimeout = 300;
connection.Open();
SqlDataAdapter sda = new SqlDataAdapter(command);
connection.Close();
sda.FillSchema(myDataTable, SchemaType.Source);
sda.Fill(myDataTable);
存储过程进行选择
SELECT c.*
,cs.*
,p.*
,sl.*
,drl.*
FROM tableC as c
INNER JOIN tableCS as cs ON c.[custID] = cs.[custID]
INNER JOIN tableSL as sl ON cs.[custStatusID] = sl.[custStatusID]
LEFT OUTER JOIN tableP as p ON c.custID = p.custID
LEFT OUTER JOIN tableDRL as drl ON cs.custID = drl.custID
WHERE c.[custID] = @custID AND c.[EndDate] IS NULL AND cs.[EndDate] IS NULL
然后我操作填充了此存储过程的数据表,调用dt.NewRow()
,将值添加到该新行,将该行添加到数据表中。设置上一行中的字段等。
我的问题是,当我准备调用SqlDataAdapter.Update(myDataTable)
时,数据适配器会继续进行并更新我加入的所有表吗?根据我的数据表中的内容?
答案 0 :(得分:0)
简短的回答是否定的 - 单个适配器适用于单个表。如果使用ADO.NET,则需要使用DataSet。
使用DataSet:
Populating a DataSet from a DataAdapter
ADO.NET - Updating Multiple DataTables
Fill DataSet with multiple Tables and update them with DataAdapter
使用TableAdapterManager: