1

Datagrid に新しい行を追加したいのですが、エラーがあります。

エラー: コントロールがデータ バインドされている場合、DataGridView の行コレクションに行をプログラムで追加することはできません。

     row = new string[] { "0", "1", hesab_nomresi,soyad,ad,ataadi,vesiqe,teskilat_kodu,tevellud,nomre,cins };
     kartsifarishiGridView.Rows.Add(elaveEtme.row);

     AllowUserToAddRow = false;

データソース: (著者のコメントから追加)

string sqlSorgu = "SELECT" + " customer.id, + " IIf (customer.cins = 'M','Kişi','Qadın') AS Cins " + " FROM customer ORDER BY customer.id ASC";
OleDbDataAdapter dataAdapter = new OleDbDataAdapter(sqlSorgu, Program.esas.bazayaQosul); 
DataTable dataTable = new DataTable(); 
set = new DataSet(); 
set.Tables.Add(dataTable); 
dataAdapter.Fill(dataTable);

kartsifarishiGridView.DataSource = dataTable;
4

2 に答える 2

2

グリッドにバインドしているデータ ソースに新しい行を直接追加し、kartsifarishiGridView.DataBind(); を呼び出すことができます。

new string[] { "0", "1", hesab_nomresi,soyad,ad,ataadi,vesiqe,teskilat_kodu,tevellud,nomre,cins };

アイデアは、バインドされた datagridview に行を追加できないということです。datagridview がバインドされている構造 (データテーブル) に追加する必要があります。

例:

       string sqlSorgu = "SELECT" + " customer.id," + " IIf (customer.cins = 'M','Kişi','Qadın') AS Cins " + " FROM customer ORDER BY customer.id ASC"; 

        OleDbDataAdapter dataAdapter = new OleDbDataAdapter(sqlSorgu, Program.esas.bazayaQosul); 
        DataTable dataTable = new DataTable(); 
        set = new DataSet(); 
        set.Tables.Add(dataTable); 
        dataAdapter.Fill(dataTable);

        //  Here is the code for adding new row
        dataTable.Rows.Add(new string[]
                               {
                                   "0", "1", hesab_nomresi, soyad, ad, ataadi, vesiqe, teskilat_kodu, tevellud, nomre,
                                   cins
                               });

        kartsifarishiGridView.DataSource = dataTable;
于 2012-06-09T14:52:17.193 に答える
0

一般的な方法でこれに取り組む方法は次のとおりです。

myDataGridView.BindingContext[dg.DataSource, dg.DataMember].AddNew();
于 2015-11-12T08:50:35.937 に答える