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

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

ただいまの
回答率

91.78%

  • C#

    3905questions

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

  • SQLite

    358questions

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

  • .NET Framework

    313questions

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

Sqliteのエラー

解決済

回答 2

投稿 2017/01/04 21:13 ・編集 2017/01/04 22:47

  • 評価
  • クリップ 0
  • VIEW 330

yamaguti

score 72

お世話になります。

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

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

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

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

追加情報:SQL logic error or missing database

no such table: PASS_KANRI

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SQLite;

namespace WindowsFormsApplication4
{
    public partial class Touroku : Form
    {


        public Touroku()
        {
            InitializeComponent();
            textToday.Text = DateTime.Now.ToString("yy/MM/dd");
        }

        private void label4_Click(object sender, EventArgs e)
        {

        }

        private void textToday_TextChanged(object sender, EventArgs e)
        {

        }

        private void buttonLogin_Click(object sender, EventArgs e)
        {
            string random = Guid.NewGuid().ToString("N").Substring(0, 8);
            textPasssei.Text = random;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string dbConnectionString = "Data Source = E:\\myfriend.sqlite3.db";
            using (SQLiteConnection cn = new SQLiteConnection(dbConnectionString)) {
                cn.Open();
                using (SQLiteTransaction trans = cn.BeginTransaction()) {
                    SQLiteCommand cmd = cn.CreateCommand();
                    //DBにインサート
                    cmd.CommandText = "INSERT INTO PASS_KANRI (No,LoginId,Password,Todate,BIKO) VALUES(@No,@LoginId,@Password,@Todate,@BIKO)";

                    //パラメータのセット
                    cmd.Parameters.Add("No", System.Data.DbType.String);
                    cmd.Parameters.Add("LoginId", System.Data.DbType.String);
                    cmd.Parameters.Add("Password", System.Data.DbType.String);
                    cmd.Parameters.Add("Todate", System.Data.DbType.String);
                    cmd.Parameters.Add("BIKO", System.Data.DbType.String);

                    cmd.Parameters["No"].Value = textBox1.Text;
                    cmd.Parameters["LoginId"].Value = textSiteNm.Text;
                    cmd.Parameters["Password"].Value = textPW.Text;
                    cmd.Parameters["Todate"].Value = textToday.Text;
                    cmd.Parameters["BIKO"].Value = TextBIKO.Text;

                    cmd.ExecuteNonQuery();
                    trans.Commit();

                }
            }
        }

        private void label8_Click(object sender, EventArgs e)
        {

        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • ikedas

    2017/01/07 14:11

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

    キャンセル

回答 2

checkベストアンサー

0

INSERT INT myfriend 


ではなく

INSERT INTO myfriend 


なのでは?

投稿 2017/01/04 21:16

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    以下のような回答は評価を下げられます

    • 間違っている回答
    • 質問の回答になっていない投稿
    • 不快な投稿

    評価を下げる際はその理由をコメントに書き込んでください。

  • 2017/01/04 21:23

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

    キャンセル

  • 2017/01/04 21:23

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

    追加情報:SQL logic error or missing database

    no such table: PASS_KANRI

    キャンセル

  • 2017/01/04 21:24

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

    キャンセル

  • 2017/01/04 21:26

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

    キャンセル

  • 2017/01/04 21:29

    適切に修正しました。

    修正点 INTO
    PASS_KANRI テーブル名を変更

    キャンセル

  • 2017/01/04 21:32

    正直、"cmd.Parameters.Add"の書き方がこれでいいのかな?という気はしますがそれは一旦脇に置きます。

    「cmd.Parameters.Add("No", System.Data.DbType.String);」に対応する「cmd.Parameters["NO"]」が見当たらないようですがそれで問題ないのですか?

    キャンセル

  • 2017/01/04 21:36

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

    https://teratail.com/questions/60222

    ※私の方はきちんと動作しています。

    キャンセル

  • 2017/01/04 21:36

    ご回答ありがとうございます。

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

    キャンセル

  • 2017/01/04 21:38

    上記コードで実行してみた結果になります。

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

    追加情報:SQL logic error or missing database

    no such table: PASS_KANRI

    キャンセル

  • 2017/01/04 21:39

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

    キャンセル

  • 2017/01/04 21:50

    質問文修正させて頂きました。

    以前ご回答頂いた、ソースを元にこちらも修正致しました。

    キャンセル

  • 2017/01/04 21:55

    SQLのパラメータ組み立ての書式ですが、私の環境でyamagutiさんの書き方で動くことを確認しました。
    大変失礼しました。

    となると、気になるのは「no such table: PASS_KANRI」というメッセージですね。
    そのようなテーブルはない、と言っている訳ですがその辺は大丈夫でしょうか?
    "DB Brower for SQLite"といったsqliteのDBが開けるGUIツールもあります。
    確認してはいかがでしょうか。

    キャンセル

  • 2017/01/04 21:57

    ソースを修正いただいたようですが、その場合

    cmd.Parameters.Add("No", System.Data.DbType.String);

    を含む5行は不要となります。

    キャンセル

  • 2017/01/04 22:08

    ありがとうございます。

    ソースの修正を致しました。
    またツールを導入させていただきました。
    上記キャプチャーをとりました。

    指定したテーブルはありそうです。

    キャンセル

  • 2017/01/04 22:25

    混乱させてしまっていたら済みませんね。
    質問文のコードのところ、ちょっとヘンなので見直してみてください。
    またクエリのパラメータ組み立てですが、「cmd.Parameters.Add("No", System.Data.DbType.String);」を含む5行は必要ないです。

    確認させて欲しいのですが、"textBox1"や"textSiteNm"というのはテキストボックスの値をセットするということでしょうか?
    だとしたら"textBox1.Text"、"textSiteNm.Text"とする必要があります。

    キャンセル

  • 2017/01/04 22:48

    理解不足ですいません。

    ご指摘ありがとうございます。
    確認修正致します。

    キャンセル

0

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

投稿 2017/01/04 21:17

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    以下のような回答は評価を下げられます

    • 間違っている回答
    • 質問の回答になっていない投稿
    • 不快な投稿

    評価を下げる際はその理由をコメントに書き込んでください。

  • 2017/01/04 21:24

    ありがとうございます。

    エラーの内容が変わりました
    型 'System.Data.SQLite.SQLiteException' のハンドルされていない例外が System.Data.SQLite.dll で発生しました

    追加情報:SQL logic error or missing database

    no such table: PASS_KANRI

    キャンセル

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

ただいまの回答率

91.78%

関連した質問

  • 受付中

    C# 文字列の部分一致

    前提・実現したいこと ここに質問したいことを詳細に書いてください (例)PHP(CakePHP)で●●なシステムを作っています。   ■■な機能を実装中に以下のエラーメッセー

  • 解決済

    SQLiteエラーが解決できない

    お世話になります。 C#とSqliteでタスク管理を行うシステムを作成しております。 テスト的にまずはプログラム側で固定値をDBにインサートしようとしているのですが、下

  • 解決済

    C#(SQlite)を使い検索画面を実装中です。

    C#(SQlite)を使い検索画面を実装中です。 お世話になります。 検索画面を実装中なのですが、検索条件なしの際は、うまくいくのですが 検索条件を入れたときが結果が取れ

  • 解決済

    落ちる原因が分からない(windowsフォーム)

    お世話になります。 パスワード管理するプログラムを実装しているのですが、 Update部分で落ちてしまい原因がわかりません。 DataGridViewのチェックをつけ

同じタグがついた質問を見る

  • C#

    3905questions

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

  • SQLite

    358questions

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

  • .NET Framework

    313questions

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

閲覧数の多いC#の質問