解析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)
{
}
我还没有尝试过任何代码进行分析和比较,只是还没有,但我首先需要知道访问数据和格式化的最佳方式。
谢谢!
我喜欢使用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");
让我知道是否有这方面的问题。
“DataSet Grid = new DataSet();”会和我的代码中的“数据”一样吗?如果是这样,我想我明白了。 – 2012-07-06 15:46:09
只有我不清楚它的“tableData.Where ....”行。 – 2012-07-06 15:46:40
这是一个LINQ到对象查询。使用LINQ可以做很多事情,而且它对查询和比较数据非常有用。 [Here](http://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b)是一个很好的链接,可以帮助你理解LINQ。 – 2012-07-06 15:50:14
它应该是DataGridView吗?你能比较绑定到DataGridView的数据源吗? – Chandu 2012-07-06 15:12:15
数据放入datagridview用于GUI目的。我应该比较来源吗? – 2012-07-06 15:14:08
除非用户界面中的数据发生更改,否则我会说数据源比较好得多,因为您不需要重新构建数据源。 – Chandu 2012-07-06 15:17:04