【问题标题】:DatagridView New row Add ErrorDatagridView 新行添加错误
【发布时间】:2012-06-09 14:35:11
【问题描述】:

我想在 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;

【问题讨论】:

  • 错误:当控件是数据绑定时,行不能以编程方式添加到 DataGridView 的行集合中。
  • 什么是数据源?是收藏还是DataTalbe?请提供您正在执行绑定的代码。

标签: c# datagridview


【解决方案1】:

您可以将新行直接添加到要绑定到网格的数据源并调用 kartsifarishiGridView.DataBind();

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

这个想法是您不能将行添加到绑定的数据网格视图。您必须将其添加到 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;

【讨论】:

  • 'System.Windows.Forms.DataGridView' 不包含'DataBind' 的定义,并且没有扩展方法'DataBind' 接受'System.Windows.Forms.DataGridView' 类型的第一个参数找到(您是否缺少 using 指令或程序集引用?):(
  • 只是不要使用 DataBind 方法。我以为是 ASP.NET GridView :)
  • MY SQL 查询字符串 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;
【解决方案2】:

以下是解决此问题的通用方法:

myDataGridView.BindingContext[dg.DataSource, dg.DataMember].AddNew();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-01
    • 2011-12-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多