
お世話になります。
画面から入力値を受取、SQLにて絞りこみ、DataGridViewに表示させるPGを実装しております。
エラーが出てしまい、調べてみたのですが、なにが原因となっているのかわかりません。
エラーの原因、及び解消法をご教示いただけますでしょうか。
エラー内容
System.InvalidOperationException: ''Fill' を呼び出す前に、SelectCommand プロパティが初期化されませんでした。'
C#
1 private void btnserch_Click(object sender, EventArgs e) 2 { 3 //DB接続等 4 string dbPath = Application.StartupPath + @"\kabukanri.db"; 5 using (SQLiteConnection con = new SQLiteConnection("Data Source=" + dbPath)) 6 { 7 con.Open(); 8 DataTable datatable = new DataTable(); 9 #region 検索時項目が入っている場合のSQL 10 11 StringBuilder sql = new StringBuilder(); 12 SQLiteCommand cmd = con.CreateCommand(); 13 14 SQLiteDataAdapter adapter = new SQLiteDataAdapter(); 15 sql.AppendLine("select"); 16 sql.AppendLine(" 損益.日付 || 曜日.曜日"); 17 sql.AppendLine(" , 損益.損益額"); 18 sql.AppendLine(" , コメント.コメント"); 19 sql.AppendLine("from"); 20 sql.AppendLine(" 損益テーブル 損益"); 21 sql.AppendLine(" left join 曜日テーブル 曜日"); 22 sql.AppendLine(" on 曜日.ID = 損益.曜日ID"); 23 sql.AppendLine(" left join コメントテーブル コメント"); 24 sql.AppendLine(" on コメント.日付 = 損益.日付"); 25 sql.AppendLine("where"); 26 sql.AppendLine(" 1 = 1"); 27 sql.AppendLine(" and 損益.日付 >= @日付From"); 28 sql.AppendLine(" and 損益.日付 <= @日付To"); 29 sql.AppendLine(" and 損益.損益額 >= @損益額From"); 30 sql.AppendLine(" and 損益額 <= @損益額To"); 31 32 cmd.Parameters.Add("日付From", System.Data.DbType.String); 33 cmd.Parameters.Add("日付To", System.Data.DbType.String); 34 cmd.Parameters.Add("損益額From", System.Data.DbType.String); 35 cmd.Parameters.Add("損益額To", System.Data.DbType.String); 36 37 cmd.Parameters["日付From"].Value = txtdateF.Text; 38 cmd.Parameters["日付To"].Value = txtdateT.Text; 39 cmd.Parameters["損益額From"].Value = txtkinF.Text; 40 cmd.Parameters["損益額To"].Value = txtkinT.Text; 41 42 cmd.CommandText = sql.ToString(); 43 cmd.ExecuteNonQuery(); 44 //cmd.Connection = cmd; 45 46 adapter.Fill(datatable); 47 this.dataGridView1.DataSource = datatable; 48 } 49 }

分かってやってるとは思えないです。 なんで cmd.ExecuteNonQuery(); があるのですか? adapter に cmd が設定してありますか?
こういう記事をまず読んだ方が良いと思います。http://www.atmarkit.co.jp/ait/series/2779/

回答3件
あなたの回答
tips
プレビュー