解析DataGridView C#

问题描述:

我正试图在C#中编写一个应用程序,它将分析两个不同的数据集并尝试查找它们之间的匹配。我的问题是,通过数据行并从中提取数据的最佳方式是什么?解析DataGridView C#

我需要提取具有多列的整行数据,并分析它们的相似之处。

最好的办法是将行放入一个字符串并解析它?

编辑:这是我用来将数据放在一个DataGridView从Excel电子表格的代码:

try 
       { 
        OleDbConnectionStringBuilder connStringBuilder = new OleDbConnectionStringBuilder(); 
        connStringBuilder.DataSource = file; 
        connStringBuilder.Provider = "Microsoft.Jet.OLEDB.4.0"; 
        connStringBuilder.Add("Extended Properties", "Excel 8.0;HDR=NO;IMEX1"); 

        DbProviderFactory factory = DbProviderFactories.GetFactory("System.Data.OleDb"); 

        DbDataAdapter adapter = factory.CreateDataAdapter(); 

        DbCommand selectCommand = factory.CreateCommand(); 
        selectCommand.CommandText = "SELECT * FROM [All Carpets to Excel$]"; 

        DbConnection connection = factory.CreateConnection(); 
        connection.ConnectionString = connStringBuilder.ConnectionString; 

        selectCommand.Connection = connection; 

        adapter.SelectCommand = selectCommand; 

        data = new DataSet(); 

        adapter.Fill(data); 

        dataGridView1.DataSource = data.Tables[0].DefaultView; 



       } 
       catch (IOException) 
       { 

       } 

我还没有尝试过任何代码进行分析和比较,只是还没有,但我首先需要知道访问数据和格式化的最佳方式。

谢谢!

+1

它应该是DataGridView吗?你能比较绑定到DataGridView的数据源吗? – Chandu 2012-07-06 15:12:15

+0

数据放入datagridview用于GUI目的。我应该比较来源吗? – 2012-07-06 15:14:08

+1

除非用户界面中的数据发生更改,否则我会说数据源比较好得多,因为您不需要重新构建数据源。 – Chandu 2012-07-06 15:17:04

我喜欢使用List对象,并使用LINQ运行比较和运行查询。下面是一个DataSet的示例(您的示例中的'data'属性)并从中获取DataTable。然后我遍历行&列并填充列表。最后一行仅仅是在新List上使用LINQ查询的一个例子。

DataSet grid = new DataSet(); 
      DataTable table = grid.Tables[0]; 

      List<string> tableData = new List<string>(); 
      foreach (DataRow row in table.Rows) 
      { 
       for (int i = 0; i < table.Columns.Count; i++) 
       { 
        tableData.Add(row[i].ToString()); 
       } 
      } 

      tableData.Where(x => x == "TestValue"); 

让我知道是否有这方面的问题。

+0

“DataSet Grid = new DataSet();”会和我的代码中的“数据”一样吗?如果是这样,我想我明白了。 – 2012-07-06 15:46:09

+0

只有我不清楚它的“tableData.Where ....”行。 – 2012-07-06 15:46:40

+1

这是一个LINQ到对象查询。使用LINQ可以做很多事情,而且它对查询和比较数据非常有用。 [Here](http://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b)是一个很好的链接,可以帮助你理解LINQ。 – 2012-07-06 15:50:14