【问题标题】:compare a datagridview with a datatable将 datagridview 与数据表进行比较
【发布时间】:2012-06-18 08:28:57
【问题描述】:

我需要将 gridview 与数据表进行比较,当它匹配时,我需要检查一个复选框来控制匹配的确切行。那么有人可以给我意见吗?

目前我正在使用 foreach()datatable.select()。 代码在这里..

 foreach (GridViewRow grdrwCr /*dtrwCr1*/ in grdCr.Rows /*&dtCr1.Rows*/)
        {string TxnNo = grdrwCr.Cells["TxnNo"].ToString();
            string TxnDate = grdrwCr.Cells["TxnDate"].ToString();
            string TxnID = grdrwCr.Cells["TxnID"].ToString();
            string ChequeNo = grdrwCr.Cells["ChequeNo"].ToString();
            string CrAmount = grdrwCr.Cells["lblCrAmount"].ToString();

【问题讨论】:

  • DataRow[] drResults= dtCrExcel.Select("TxnNO ="+TxnNo+"AND (Date="+TxnDate+"AND Type="+TxnID+"AND CheckNo="+ChequeNo+"AND Amount=" +CrAmount+")");
  • 更新你的问题,不要把代码作为评论

标签: c# asp.net datagridview datatable


【解决方案1】:

在第一次绑定控件时,必须为 gridview 中的每一行打印主键(可见 = false 的列)。

用户第二次选择复选框或行时,取事件对应的主键。

使用主键 ,,,您可以在数据表中选择您的数据。

【讨论】:

    【解决方案2】:

    只是一个想法。 如果您可以将 GridView 与 dataTable 绑定为数据源,那么您可以合并这两个数据表并检查行状态决定复选框逻辑。

    用于合并 2 个数据表的 MSDN 链接 - http://msdn.microsoft.com/en-us/library/fk68ew7b.aspx

    已经在以下链接中讨论过- C# - Merge two DataTables where rows are duplicate

    var intersection = table1.AsEnumerable() 
                             .Intersect(table2.AsEnumerable(), DataRowComparer.Default); 
    

    【讨论】:

      猜你喜欢
      • 2017-10-02
      • 2014-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-29
      相关资源
      最近更新 更多