0

データベースと照合する必要があるデータのリストを持つ VS 2012 C# WinForms アプリを作成しています。私が持っているリストには、I8KJ7SNRXY などの文字列のような "PROPNUM" 値のみが含まれています。リストに PROPNUM に対応するエントリがあるかどうかを確認するために、リストとデータベースをループできるようにしたいと考えています。

すべての情報をリストに入れる私のコードは次のとおりです。

            con7 = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePath);
            ad7.SelectCommand = new OleDbCommand("SELECT b.PROPKEY FROM [PROJECT] 
                 a INNER JOIN [PROJLIST] b on a.PROJKEY=b.PROJKEY WHERE a.NAME = 
                 '" + (string)comboBox2.SelectedItem + "'", con7);

            ds7.Clear();
            con7.Open();
            ad7.SelectCommand.ExecuteNonQuery();
            ad7.Fill(ds7);
            con7.Close();

            List<string> propnumList = new List<string>();
            foreach (DataRow drRow in ds7.Tables[0].Rows)
            {
                for (int i = 0; i < ds7.Tables[0].Columns.Count; i++)
                {
                    propnumList.Add(drRow[i].ToString());
                }
            }

これは、一致する値を見つけるために使用しようとしているコードです。

            foreach (string propnum in propnumList)
            {
                    int selection = comboBox1.SelectedIndex;
                    string endDate = "ENDDATE";
                    string qual = ds2.Tables["AC_SCENARIO"].Rows[0][selection].ToString(); //if qual is null break out of for //if qual is found store and move onto next property
                    MessageBox.Show(qual);
                    ad.SelectCommand = new OleDbCommand("SELECT b.PROPNUM, 
                         a.QUALIFIER, b.KEYWORD, b.EXPRESSION FROM [AC_ECONOMIC] 
                         b INNER JOIN [AC_SCENARIO] a on a.PROPNUM=b.PROPNUM 
                         WHERE QUALIFIER = '" + qual + "' AND PROPNUM = '" + 
                         propnum + "' AND KEYWORD = '"+endDate+"' AND NOT 
                         EXPRESSION LIKE '%[/@]%'", con);

                    ds2.Clear();
                    con.Open();
                    ad.SelectCommand.ExecuteNonQuery();
                    ad.Fill(ds2);
                    con.Close();

            }

「1 つ以上の必須パラメーターに値が指定されていません」というエラーが表示されます。したがって、2番目のクエリに問題があると思います。誰かがリストに対してDBマッチングをループするのを手伝ってくれるなら、それは大歓迎です。

4

0 に答える 0