0

2 つの異なるデータ セットを分析し、それらの間の一致を見つけようとするアプリケーションを C# で作成しようとしています。私の質問は、データ行を調べてデータを抽出するための最良の方法は何ですか?

複数の列を持つデータの行全体を抽出し、類似性を分析する必要があります。

行を文字列に入れて解析するのが最善の方法でしょうか?

編集:これは、ExcelスプレッドシートからのDataGridViewにデータを配置するために使用しているコードです:

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)
                {

                }

分析と比較のためのコードはまだ試していませんが、まず、データにアクセスしてフォーマットするための最良の方法を知る必要があります。

ありがとう!

4

1 に答える 1

1

List オブジェクトを扱うのが好きで、LINQ を使用して比較を実行し、クエリを実行します。DataSet (例の「データ」プロパティ) を取得し、そこから DataTable を取得する例を次に示します。次に、行と列をループしてリストに入力します。最後の行は、新しいリストで 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");

これについて質問がある場合はお知らせください。

于 2012-07-06T15:39:31.487 に答える