将数据集保存到数据库

我正在尝试将数据集保存到数据库。 我从另一个类获得了一个数据集,现在用户在datagridview上对表单进行更改,然后需要将更改的数据集保存在数据库中。

我使用下面的代码; 它不会产生任何错误,但数据不会保存在数据库中。

public class myForm { DataSet myDataSet = new DataSet(); public void PouplateGridView() { try { SqlService sql = new SqlService(connectionString); // Valid Connection String, No Errors myDataSet = sql.ExecuteSqlDataSet("SELECT * FROM Qualification"); // Returns a DataSet myDataGridView.DataSource = myDataSet.Tables[0]; myDataGridView.AutoGenerateColumns = true; myDataGridView.AutoResizeColumns(); } catch (Exception ex) { MessageBox.Show(ex.InnerException + Environment.NewLine + ex.Message, "Error"); this.Close(); } } private void btnSave_Click(object sender, EventArgs e) { //myDataSet.AcceptChanges();EDIT:Don't know why, but this line wasn't letting the chane in db happen. SqlCommand sc = new SqlCommand("SELECT * FROM Qualification", sql.Connection); //ADDED after Replies SqlDataAdapter da = new SqlDataAdapter(); SqlCommandBuilder scb = new SqlCommandBuilder(da); //ADDED after replies da.Update(myDataSet.Tables[0]); } } public class mySqlService { public DataSet ExecuteSqlDataSet(string sql) { SqlCommand cmd = new SqlCommand(); this.Connect(); SqlDataAdapter da = new SqlDataAdapter(); DataSet ds = new DataSet(); cmd.CommandTimeout = this.CommandTimeout; cmd.Connection = _connection; if (_transaction != null) cmd.Transaction = _transaction; cmd.CommandText = sql; cmd.CommandType = CommandType.Text; da.SelectCommand = cmd; da.Fill(ds); da.Dispose(); cmd.Dispose(); if (this.AutoCloseConnection) this.Disconnect(); return ds; } } 

我在这做错了什么? 如果在同一个类中创建,编辑和保存数据集等,Web上有一些方法可以保存数据集。但是我想在mySqlService类中使用select数据集方法。 我该怎么办,现在可以将数据集保存到数据库中?

编辑:我已经评论了使代码工作所需的三行。 代码现在有效。

要运行SqlDataAdapter Update方法,必须配置InsertCommandDeleteCommandUpdateCommand属性以及SqlDataAdapter的SelectCommand ,或者构造隐式配置这些命令的SqlCommandBuilder对象。

嘿首先尝试按照本教程http://support.microsoft.com/kb/308507 ,然后根据您的需要进行调整。