質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

Q&A

解決済

2回答

6918閲覧

Sqliteのエラー

yamaguti

総合スコア185

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

0グッド

0クリップ

投稿2017/01/04 12:13

編集2017/01/04 13:47

お世話になります。

パスワードを管理するシステムを作っております。

今、画面から登録ボタンを押した時にDBに登録するロジックを実装しているのですが
行き詰まっています。

どなたかご教示のほどよろしくお願い致します。

イメージ説明
型 'System.Data.SQLite.SQLiteException' のハンドルされていない例外が System.Data.SQLite.dll で発生しました

追加情報:SQL logic error or missing database

no such table: PASS_KANRI

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 Touroku : Form 15 { 16 17 18 public Touroku() 19 { 20 InitializeComponent(); 21 textToday.Text = DateTime.Now.ToString("yy/MM/dd"); 22 } 23 24 private void label4_Click(object sender, EventArgs e) 25 { 26 27 } 28 29 private void textToday_TextChanged(object sender, EventArgs e) 30 { 31 32 } 33 34 private void buttonLogin_Click(object sender, EventArgs e) 35 { 36 string random = Guid.NewGuid().ToString("N").Substring(0, 8); 37 textPasssei.Text = random; 38 } 39 40 private void button1_Click(object sender, EventArgs e) 41 { 42 string dbConnectionString = "Data Source = E:\\myfriend.sqlite3.db"; 43 using (SQLiteConnection cn = new SQLiteConnection(dbConnectionString)) { 44 cn.Open(); 45 using (SQLiteTransaction trans = cn.BeginTransaction()) { 46 SQLiteCommand cmd = cn.CreateCommand(); 47 //DBにインサート 48 cmd.CommandText = "INSERT INTO PASS_KANRI (No,LoginId,Password,Todate,BIKO) VALUES(@No,@LoginId,@Password,@Todate,@BIKO)"; 49 50 //パラメータのセット 51 cmd.Parameters.Add("No", System.Data.DbType.String); 52 cmd.Parameters.Add("LoginId", System.Data.DbType.String); 53 cmd.Parameters.Add("Password", System.Data.DbType.String); 54 cmd.Parameters.Add("Todate", System.Data.DbType.String); 55 cmd.Parameters.Add("BIKO", System.Data.DbType.String); 56 57 cmd.Parameters["No"].Value = textBox1.Text; 58 cmd.Parameters["LoginId"].Value = textSiteNm.Text; 59 cmd.Parameters["Password"].Value = textPW.Text; 60 cmd.Parameters["Todate"].Value = textToday.Text; 61 cmd.Parameters["BIKO"].Value = TextBIKO.Text; 62 63 cmd.ExecuteNonQuery(); 64 trans.Commit(); 65 66 } 67 } 68 } 69 70 private void label8_Click(object sender, EventArgs e) 71 { 72 73 } 74 75 private void textBox1_TextChanged(object sender, EventArgs e) 76 { 77 78 } 79 } 80} 81 82

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ikedas

2017/01/07 05:11

 「E:\myfriend.sqlite3.db」というデータベースファイルは存在していますか。また、ツールで開いているデータベースファイルは、本当に「E:\myfriend.sqlite3.db」ですか。
guest

回答2

0

INSERT INT ではなく
INSERT INTO の誤りではないでしょうか?("O"がない)

投稿2017/01/04 12:17

motuo

総合スコア3027

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yamaguti

2017/01/04 12:24

ありがとうございます。 エラーの内容が変わりました 型 'System.Data.SQLite.SQLiteException' のハンドルされていない例外が System.Data.SQLite.dll で発生しました 追加情報:SQL logic error or missing database no such table: PASS_KANRI
guest

0

ベストアンサー

INSERT INT myfriend

ではなく

INSERT INTO myfriend

なのでは?

投稿2017/01/04 12:16

ynakano

総合スコア1894

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yamaguti

2017/01/04 12:23

ありがとうございます! 直しました。
yamaguti

2017/01/04 12:23

型 'System.Data.SQLite.SQLiteException' のハンドルされていない例外が System.Data.SQLite.dll で発生しました 追加情報:SQL logic error or missing database no such table: PASS_KANRI
yamaguti

2017/01/04 12:24

エラーがメッセージが変わりました。
ynakano

2017/01/04 12:26

質問文が直っていないのと、いきなり「PASS_KANRI」が出てきていて、一体何がどうしてどうなったのか読み取れません。 適切に質問文を修正してください。
yamaguti

2017/01/04 12:29

適切に修正しました。 修正点 INTO PASS_KANRI テーブル名を変更
ynakano

2017/01/04 12:32

正直、"cmd.Parameters.Add"の書き方がこれでいいのかな?という気はしますがそれは一旦脇に置きます。 「cmd.Parameters.Add("No", System.Data.DbType.String);」に対応する「cmd.Parameters["NO"]」が見当たらないようですがそれで問題ないのですか?
ynakano

2017/01/04 12:36

私も(おそらく)yamagutiさんと同じ環境でsqliteを使っているのですが、Parameters.Addの書式が私が書いたコードと異なります。 以前yamatutiさんの別の質問で回答していますので、以下も見てみてもらえればと思います。 https://teratail.com/questions/60222 ※私の方はきちんと動作しています。
yamaguti

2017/01/04 12:36

ご回答ありがとうございます。 Noはキーとして、連番を発番したいのですが一旦やり方がわからず置いてました。 一旦Noをソースに追加してみました。
yamaguti

2017/01/04 12:38

上記コードで実行してみた結果になります。 型 'System.Data.SQLite.SQLiteException' のハンドルされていない例外が System.Data.SQLite.dll で発生しました 追加情報:SQL logic error or missing database no such table: PASS_KANRI
ynakano

2017/01/04 12:39

質問文の修正に伴い出力されるエラーメッセージも変わっていると思います。 そこも質問文修正に反映していただけますか。 あと、2つ上の私のコメントも見てみてくださいね。
yamaguti

2017/01/04 12:50

質問文修正させて頂きました。 以前ご回答頂いた、ソースを元にこちらも修正致しました。
ynakano

2017/01/04 12:55

SQLのパラメータ組み立ての書式ですが、私の環境でyamagutiさんの書き方で動くことを確認しました。 大変失礼しました。 となると、気になるのは「no such table: PASS_KANRI」というメッセージですね。 そのようなテーブルはない、と言っている訳ですがその辺は大丈夫でしょうか? "DB Brower for SQLite"といったsqliteのDBが開けるGUIツールもあります。 確認してはいかがでしょうか。
ynakano

2017/01/04 12:57

ソースを修正いただいたようですが、その場合 cmd.Parameters.Add("No", System.Data.DbType.String); を含む5行は不要となります。
yamaguti

2017/01/04 13:08

ありがとうございます。 ソースの修正を致しました。 またツールを導入させていただきました。 上記キャプチャーをとりました。 指定したテーブルはありそうです。
ynakano

2017/01/04 13:25

混乱させてしまっていたら済みませんね。 質問文のコードのところ、ちょっとヘンなので見直してみてください。 またクエリのパラメータ組み立てですが、「cmd.Parameters.Add("No", System.Data.DbType.String);」を含む5行は必要ないです。 確認させて欲しいのですが、"textBox1"や"textSiteNm"というのはテキストボックスの値をセットするということでしょうか? だとしたら"textBox1.Text"、"textSiteNm.Text"とする必要があります。
yamaguti

2017/01/04 13:48

理解不足ですいません。 ご指摘ありがとうございます。 確認修正致します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問