C#(SQlite)を使い検索画面を実装中です。
お世話になります。
検索画面を実装中なのですが、検索条件なしの際は、うまくいくのですが
検索条件を入れたときが結果が取れてきません。
cmd.Parameters["SiteNm"].Value = txtSiteNm.Text;をウォッチで見ると、画面から入力した値が取れている為
後何が足らないのか分かりません。
ご教示の程よろしくお願い致します。
C#
1using System; 2using System.Collections.Generic; 3using System.ComponentModel; 4using System.Data; 5using System.Drawing; 6using System.Linq; 7using System.Text; 8using System.Threading.Tasks; 9using System.Windows.Forms; 10using System.Data.SQLite; 11 12namespace WindowsFormsApplication4 13{ 14 public partial class Itiran : Form 15 { 16 public Itiran() 17 { 18 InitializeComponent(); 19 } 20 private void btnsintou_Enter(object sender, EventArgs e) 21 { 22 //新規登録ボタンを押下すると登録画面に遷移 23 Touroku Touroku = new Touroku(); 24 Touroku.Show(); 25 this.Visible = false; 26 } 27 private DataTable datatable = new DataTable(); 28 protected override void OnLoad(EventArgs e) 29 { 30 dataGridView1.DataSource = datatable; 31 base.OnLoad(e); 32 } 33 //テーブルの内容を表示 34 private void buttonkensaku_Click(object sender, EventArgs e) 35 { 36 //検索条件がない場合 37 if (txtSiteNm.Text == "") 38 { 39 using (SQLiteConnection con = new SQLiteConnection("Data Source = C:\\Users/BC049/Desktop/WindowsFormsApplication4/myfriend.sqlite3")) 40 41 42 using (SQLiteDataAdapter adapter = new SQLiteDataAdapter("select * from PASS_KANRI", con)) 43 { 44 //データグリッドビューのクリア 45 datatable.Clear(); 46 47 dataGridView1.DataSource = datatable; 48 adapter.Fill(datatable); 49 50 //dataGridView1.Columns[0].HeaderText = "ID"; 51 //No,SiteNm,LoginId,Password,BIKO カラム順 52 //テーブルの内容表示 53 dataGridView1.Columns[0].HeaderText = "No"; 54 dataGridView1.Columns[1].HeaderText = "サイト名"; 55 dataGridView1.Columns[2].HeaderText = "ログインIDまたはEmail等"; 56 dataGridView1.Columns[3].HeaderText = "パスワード"; 57 dataGridView1.Columns[4].HeaderText = "登録日"; 58 dataGridView1.Columns[5].HeaderText = "備考"; 59 60 } 61 } 62 else 63 { 64 string dbConnectionString = "Data Source = C:\\Users/BC049/Desktop/WindowsFormsApplication4/myfriend.sqlite3"; 65 using (SQLiteConnection cn = new SQLiteConnection(dbConnectionString)) 66 { 67 cn.Open(); 68 using (SQLiteTransaction trans = cn.BeginTransaction()) 69 { 70 SQLiteCommand cmd = cn.CreateCommand(); 71 //DBセレクト 72 cmd.CommandText = "SELECT * from PASS_KANRI where SiteNm = @SiteNm"; 73 74 //パラメータセット 75 cmd.Parameters.Add("SiteNm", System.Data.DbType.String); 76 77 cmd.Parameters["SiteNm"].Value = txtSiteNm.Text; 78 79 //datatableのクリア 80 datatable.Clear(); 81 //datatableに検索結果をセット 82 datatable.Load(cmd.ExecuteReader()); 83 84 dataGridView1.DataSource = datatable; 85 86 //dataGridView1.Columns[0].HeaderText = "ID"; 87 //No,SiteNm,LoginId,Password,BIKO カラム順 88 //テーブルの内容表示 89 dataGridView1.Columns[0].HeaderText = "No"; 90 dataGridView1.Columns[1].HeaderText = "サイト名"; 91 dataGridView1.Columns[2].HeaderText = "ログインIDまたはEmail等"; 92 dataGridView1.Columns[3].HeaderText = "パスワード"; 93 dataGridView1.Columns[4].HeaderText = "登録日"; 94 dataGridView1.Columns[5].HeaderText = "備考"; 95 trans.Commit(); 96 cn.Close(); 97 98 } 99 } 100 //string dbConnectionString = "Data Source = C:\\Users/BC049/Desktop/WindowsFormsApplication4/myfriend.sqlite3"; 101 ////string dbConnectionString = "Data Source = C:\\Users/Takaaki Kawabe/Desktop/WindowsFormsApplication4 /myfriend.sqlite3"; 102 //using (SQLiteConnection cn = new SQLiteConnection(dbConnectionString)) 103 //{ 104 // cn.Open(); 105 // using (SQLiteTransaction trans = cn.BeginTransaction()) 106 // { 107 // SQLiteCommand cmd = cn.CreateCommand(); 108 // //select文を走らせる 109 // cmd.CommandText = "SELECT * from PASS_KANRI where SiteNm = @SiteNm"; 110 111 // //パラメータのセット 112 // cmd.Parameters.Add("SiteNm", System.Data.DbType.String); 113 114 // cmd.Parameters["SiteNm"].Value = txtSiteNm.Text; 115 116 // //データグリッドビューのクリア 117 // datatable.Clear(); 118 119 // var Datatable = new DataTable(); 120 // dataGridView1.DataSource = datatable; 121 122 // dataGridView1.Columns[0].HeaderText = "No"; 123 // dataGridView1.Columns[1].HeaderText = "サイト名"; 124 // dataGridView1.Columns[2].HeaderText = "ログインIDまたはEmail等"; 125 // dataGridView1.Columns[3].HeaderText = "パスワード"; 126 // dataGridView1.Columns[4].HeaderText = "登録日"; 127 // dataGridView1.Columns[5].HeaderText = "備考"; 128 129 } 130 } 131 /// <summary> 132 /// 133 /// </summary> 134 /// <param name="sender"></param> 135 /// <param name="e"></param> 136 private void dataGridView1_Validating(object sender, CancelEventArgs e) 137 { 138 //Clipboard.SetDataObject(dataGridView1.GetClipboardContent()); 139 //ヘッダーをコピーしないようにする 140 //dataGridView1.ClipboardCopyMode = 141 // DataGridViewClipboardCopyMode.EnableWithoutHeaderText; 142 //選択されたセルの内容をクリップボードへコピー 143 //Clipboard.SetDataObject(dataGridView1.GetClipboardContent()); 144 } 145 146 private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) 147 { 148 //DataGridViewの内容をコピー 149 Clipboard.SetDataObject(dataGridView1.GetClipboardContent()); 150 } 151 152 private void Itiran_Load(object sender, EventArgs e) 153 { 154 155 } 156 157 private void Itiran_KeyDown(object sender, KeyEventArgs e) 158 { 159 //Enterキーでコントロール遷移 160 if (e.KeyCode == Keys.Enter) 161 { 162 if (e.Shift) 163 { 164 ProcessTabKey(false); 165 } 166 else 167 { 168 ProcessTabKey(true); 169 } 170 } 171 } 172 } 173} 174 175
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/01/25 02:45
2017/01/25 04:49
2017/01/25 12:20 編集