0

非常にシンプルですが、非常にイライラする問題です。データグリッドをローカル データベースにバインドして、データセットと 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);
        }

データグリッドは問題なく更新されますが、データが実際にデータベースにコミットされることはありません。解決策や見逃している可能性のあるものを高低で検索しましたが、何もありません。少なくとも私が見てきたことから、私はすべてを正しく行っています。

それで、私は何が欠けていますか?間違いなく非常に愚かなことです。

4

1 に答える 1

0

DataAdapter実際に更新DataSetをデータベースに送信するには、 a を使用する必要があると思います。

詳細については、以下のリンクを参照してください。

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

初心者向けの ADO.NET の使用

最初のリンクからの関連サンプルは次のとおりです。

    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");
于 2013-04-25T16:47:31.620 に答える