向数据集添加行不会更新数据库(C#)

时间:2013-04-25 15:24:58

标签: .net c#-4.0 dataset

一个非常简单但非常令人沮丧的问题。我已将数据网格绑定到本地数据库,以便在数据集和c#中自学。绑定数据,没问题。自定义填充(和sql选择),没问题。接下来是添加记录。所以,我添加以下代码:

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更新没有问题,但数据从未实际提交到数据库。我已经搜索过高低的解决方案,或者我可能错过的东西,什么都没有;至少从我所看到的我做的一切都是正确的。

那我错过了什么?毫无疑问,这是非常愚蠢的事情。

1 个答案:

答案 0 :(得分: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");