2013-04-25 72 views
0

这是一个非常简单但非常令人沮丧的问题。我已经绑定了一个数据网格到本地数据库,以便四处玩耍,并教导我自己关于数据集和c#。绑定数据,没问题。自定义填充(和sql选择),没问题。接下来是添加一条记录。因此,我添加了以下代码:将数据行添加到数据集未更新数据库(C#)

private void bAdd_Click(object sender, EventArgs e) 
     { 
      DataRow newRow = abbtestDataSet.Tables["main"].NewRow(); 
      newRow["Name"] = "Simon"; 
      newRow["Age"] = 23; 
      abbtestDataSet.Tables["main"].Rows.Add(newRow); 
     } 

datagrid更新没有问题,但是数据永远不会实际提交到数据库。我已经搜索了一个解决方案的高点或低点,或者我可能错过了什么也没有;至少从我看到的我做的一切都是正确的。

那么我错过了什么?毫无疑问,这很愚蠢。

回答

0

我相信你将需要使用DataAdapter实际发送更新的DataSet到数据库。

看看下面的链接,了解更多信息:

http://www.java2s.com/Tutorial/CSharp/0560__ADO.Net/UseDataTabletoinsertaRow.htm

Using ADO.NET for beginners

从第一链接相关的样品是:

string ConnectionString ="server=(local)\\SQLEXPRESS;database=MyDatabase;Integrated Security=SSPI;"; 
    SqlConnection conn = new SqlConnection(ConnectionString); 

    conn.Open(); 

    SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM Employee ORDER BY ID", conn); 

    SqlCommandBuilder builder = new SqlCommandBuilder(adapter); 

    // Create a dataset object 
    DataSet ds = new DataSet("EmployeeSet"); 
    adapter.Fill(ds, "Employee"); 

    // Create a data table object and add a new row 
    DataTable EmployeeTable = ds.Tables["Employee"]; 
    DataRow row = EmployeeTable.NewRow(); 
    row["FirstName"] = "R"; 
    row["LastName"] = "D"; 
    row["ID"] = "10"; 
    EmployeeTable.Rows.Add(row); 

    // Update data adapter 
    adapter.Update(ds, "Employee");