0

私は大きなプロジェクトに取り組んでおり、それぞれの問題について詳しく説明する時間があまりありません。Windows フォーム、特に DataGridView を使用しています。データベースのテーブルにクエリを実行するデータ ソースを追加しました。enable add、delete、および edit プロパティがチェックされます。この DataGridView は、ドラッグ アンド ドロップとデータソースの追加によって作成しました。プログラムを実行すると、クエリは正常に機能し、DataGridView にテーブルが表示され、DataGridView で行を追加、編集、および削除できますが、SQL Server Management Studio を使用してテーブルをクエリすると、テーブル内のレコードが残ります。同じ。何が問題なのですか?

4

4 に答える 4

0

残念ながら、特に更新コマンドを実行する必要があります。

役立つリンクは次のとおりです:http: //msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldataadapter.updatecommand.aspx

また、関連する場合は、SQL Serverに自動保存する方法について説明します:http: //www.codeproject.com/Articles/12846/Auto-Saving-DataGridView-Rows-to-a-SQL-Server-Data

これが、Entity Framework/MVCが好きな理由の1つです。非常に単純なデータ操作:D興味がある/時間がある場合は、チェックすることをお勧めします。

于 2012-09-26T16:37:04.440 に答える
0

テーブルを使用した後に dbnavigator を使用している場合は、dbnavigator の保存ボタンをクリックする必要があります。これは、追加、編集、および削除は、dbnavigator の保存ボタンをクリックするまでデータベースに保存されないためです。

于 2012-09-26T18:17:42.727 に答える
0

私は解決策を見つけました。「変更を保存」というボタンを追加しました。

まず、最初の宣言を行います。

    private SqlDataAdapter da;
    private DataTable dt;
    private SqlCommandBuilder sqlCommandBuilder = null;
    private SqlConnection Con = new SqlConnection(@"Data Source=......");

これは、データを入力する DataGridView をロードするためのコードです。

     private void DataGridView_Load(object sender, EventArgs e)
    {

        Con.Open();
        da = new SqlDataAdapter(@"SELECT * FROM tbl", Con);
        sqlCommandBuilder = new SqlCommandBuilder(da);


        dt = new DataTable(); 
        da.Fill(dt);
        dataGridView1.DataSource = dt;
        Con.Close();
    }

これは、[変更を保存] ボタンのコードです。

private void button1_Click(object sender, EventArgs e)
    {
         SqlCommandBuilder local_SqlCommandBuilder = new SqlCommandBuilder(da);

                local_SqlCommandBuilder.ConflictOption = System.Data.ConflictOption.OverwriteChanges;

                da.UpdateCommand = local_SqlCommandBuilder.GetUpdateCommand();

                da.Update(((System.Data.DataTable)this.dataGridView1.DataSource));

                ((System.Data.DataTable)this.dataGridView1.DataSource).AcceptChanges();

    }
于 2012-09-30T06:14:48.803 に答える
0

グリッドビューが機能するには、データソースに挿入/更新/削除コマンドが必要であり、選択コマンドだけがあるように聞こえます。

于 2012-09-26T16:20:48.270 に答える