我不确定,但我想我可能走错了路。我想在我的SQL Server上更新我的客户表。我连接了一个SQLDatareader,然后将其加载到我的Datatable中。我做了我想要的所有更改,现在我无法弄清楚如何更改备份。我以为“myDataTable.AcceptChanges();”会触发这种情况,但事实并非如此。
SqlConnection myConnection = new SqlConnection();
SqlCommand myCommand;
DataTable myDataTable;
SqlDataReader myReader;
myCommand = new SqlCommand();
myCommand.CommandText = " SELECT * FROM customer";
myCommand.CommandType = CommandType.Text;
myCommand.Connection = myConnection;
myCommand.Connection.Open();
myReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
myDataTable = new DataTable();
myDataTable.Load(myReader);
// Make Data changes here
myDataTable.AcceptChanges();
MyDataTable.Dispose();
MyCommand.Dispose();
MyConnection.Dispose();
答案 0 :(得分:1)
您可以使用TableAdapter将更改提交回数据库。有关详细信息,请查看此链接。
答案 1 :(得分:0)
在这种情况下,您需要使用DataAdapter,它具有Update属性,可以使用Update Query Command。
即使您可以使用Command Builder,然后从CommandBuilder获取UpdateCommand。
来自MSDN的示例代码
SqlDataAdapter catDA = new SqlDataAdapter("SELECT CategoryID, CategoryName FROM Categories", nwindConn);
catDA.UpdateCommand = new SqlCommand("UPDATE Categories SET CategoryName = @CategoryName " +
"WHERE CategoryID = @CategoryID" , nwindConn);
catDA.UpdateCommand.Parameters.Add("@CategoryName", SqlDbType.NVarChar, 15, "CategoryName");
SqlParameter workParm = catDA.UpdateCommand.Parameters.Add("@CategoryID", SqlDbType.Int);
workParm.SourceColumn = "CategoryID";
workParm.SourceVersion = DataRowVersion.Original;
DataSet catDS = new DataSet();
catDA.Fill(catDS, "Categories");
DataRow cRow = catDS.Tables["Categories"].Rows[0];
cRow["CategoryName"] = "New Category";
catDA.Update(catDS);