前提・実現したいこと
Visual Studio2017のWindows Formアプリケーションにて,アプリを作成中です.
Form画面には,ボタンが2つと,テキストボックスが1つ,DataGridViewが1つ配置されています.
また,SQLiteにてDBを作成しました.テキストボックスに入力された文字列や数字が
DBの中にあるかどうかを判別するプログラムを書きたいです.ボタン1がクリックされると
DBに接続し,テーブルの作成やデータの追加などを行います.そしてボタン2が押されると
それらをDataGridViewに表示します. このボタン2をクリックしたときに,テキストボックスに入力された
テキストと,DBの中のデータと1つでも一致したら,OKとLabelに表示するプログラムを作成したいです.
発生している問題・エラーメッセージ
TextBoxのテキストを変数に格納して,SELECT FROM WHERE INの中で検索しようとしたのですが,
変数が認識されません.
ソースコードいろいろと変更した結果中途半端な内容ですが
貼っておきます.
該当のソースコード
C#
1sing 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; 11using System.IO; 12 13namespace Database_1018 14{ 15 public partial class Form1 : Form 16 { 17 public Form1() 18 { 19 InitializeComponent(); 20 } 21 string path = "test.db"; 22 23 private void button1_Click(object sender, EventArgs e) 24 { 25 // テーブルを作成 (test.dbを新規で作成する場合のみ) 26 if (File.Exists(path) == false) 27 { 28 using (SQLiteConnection con = new SQLiteConnection("Data Source=" + path)) 29 { 30 // DataBase接続開始 31 con.Open(); 32 using (SQLiteCommand cmd = con.CreateCommand()) 33 { 34 cmd.CommandText = "CREATE TABLE Lesson (社員ID INTEGER, name NVARCHAR(10), 年齢 INTEGER, 部署名 NVARCHAR(10), パスワード INTEGER)"; 35 cmd.ExecuteNonQuery(); 36 } 37 } 38 39 } 40 41 using (SQLiteConnection con = new SQLiteConnection("Data Source=" + path)) 42 { 43 con.Open(); 44 using (SQLiteCommand cmd = con.CreateCommand()) 45 { 46 con.Open(); 47 cmd.CommandText = "INSERT INTO Lesson (社員ID,name,年齢,部署名,パスワード) VALUES(1000,'TOM',23,'開発技術部',11111111)"; 48 cmd.ExecuteNonQuery(); 49 cmd.CommandText = "INSERT INTO Lesson (社員ID,name,年齢,部署名,パスワード) VALUES(2000,'MIKE',23,'開発技術部',22222222)"; 50 cmd.ExecuteNonQuery(); 51 cmd.CommandText = "INSERT INTO Lesson (社員ID,name,年齢,部署名,パスワード) VALUES(3000,'JOHN',25,'開発技術部',33333333)"; 52 cmd.ExecuteNonQuery(); 53 cmd.CommandText = "INSERT INTO Lesson (社員ID,name,年齢,部署名,パスワード) VALUES(4000,'EMI',23,'開発技術部',44444444)"; 54 cmd.ExecuteNonQuery(); 55 } 56 } 57 } 58 private DataTable dataTable = new DataTable(); 59 60 protected override void OnLoad(EventArgs e) 61 { 62 dataGridView1.DataSource = dataTable; 63 base.OnLoad(e); 64 } 65 66 private void button2_Click(object sender, EventArgs e) 67 { 68 string text1; 69 text1 = textBox1.Text; 70 71 using (SQLiteConnection con = new SQLiteConnection("Data Source=" + path)) 72 { 73 con.Open(); 74 using (SQLiteDataAdapter adapter = new SQLiteDataAdapter("SELECT * FROM Lesson", con)) 75 adapter.Fill(dataTable); 76 77 try 78 { 79 string sql = "select * from lesson where text1"; 80 81 SQLiteCommand com = new SQLiteCommand(sql, con); 82 SQLiteDataReader sdr = com.ExecuteReader(); 83 } 84 finally 85 { 86 con.Close(); 87 } 88 } 89 } 90 } 91} 92 93 94 95
補足情報(FW/ツールのバージョンなど)
Visual Studio 2017 C# Windows Form アプリケーション SQLite

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/22 05:27
2018/10/22 05:32
2018/10/22 05:37
2018/10/22 06:14
2018/10/25 14:13