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

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

ただいまの
回答率

90.35%

  • C#

    9665questions

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

"ハンドル~例外"について

解決済

回答 1

投稿

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

NayamiMondai

score 9

教本による「ADO.NETによるデータベースプログラム作成」にて、
「エラー」表示(画像添付)が出て色々試みましたが、
力尽きました。(自身の能力不足による)
御助言、お願いします。

△環境
・Windows7
・vs2017community

△作成過程
1、データベースを作成。 (手順省略)
2、テーブルの作成。   (手順省略)
3、データの登録。    (手順省略)
*10件ほど登録(項目は、Id、氏名、郵便番号、住所、電話)

4、データベースアプリの作成過程。
1)接続文字列の作成。  (手順省略)
(テスト接続、成功)
2)データ表示を行う操作画面の作成と、其れに伴うイベントハンドラーの作成(手順省略)
(項目は、全件表示、表示クリア、Idを指定して抽出、住所を指定検索、プログラム実行は成功)
3)データ登録用フォーム(Form2)の作成と、イベントハンドラーの作成  (手順省略)
(項目は、Id、顧客名、郵便番号、住所、電話番号、登録、プログラム実行は成功)
~此処でプログラムを実行した際(一回目)、成功しましたが、翌日二回目の実行時、エラー発生。(上同画像添付)
*一回目は成功したので、作業続行。
4)データ消去用フォーム(Form2)を作成と、イベントハンドラーの作成  (手順省略)
(項目は、TextBox、該当するIdのデータを消去)
~プログラム実行後エラー発生。                             (上同画像添付)
以上ですが、御助言宜しくお願いします。
尚、御助言頂くに当たり、記述方法等の不手際については、予め深くお詫び申し上げます。
追伸:エラー発生のForm2のコードも添付します。

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.SqlClient;
namespace DataProviderApp0A
{
    public partial class Form2 : Form
    {
        private SqlConnection cn = new SqlConnection();
        private SqlCommand cmd = new SqlCommand();
        private SqlDataReader rd;

        public Form2()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            cn.ConnectionString =
                @"Data Source=(LocalDB)\MSSQLLocalDB;" +
                @"AttachDbFilename =| DataDirectory |\ Database0A.mdf;" +
                "Integrated Security=True;Connect Timeout=30";
            cn.Open();
                cmd.Connection = cn;
            cmd.CommandType = CommandType.Text;
            cmd.CommandText = "INSERT INTO [dbo].[Custome]VALUES(" +
                "'" + textBox1.Text + "'," +
                "N'" + textBox2.Text + "'," +
                "N'" + textBox3.Text + "'," +
                "N'" + textBox4.Text + "'," +
                "'" + textBox5.Text + "',)";
            rd = cmd.ExecuteReader();
            rd.Close();
            cn.Close();
            this.Close();             
        }
    }
}

コード

イメージ説明

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

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

  • Zuishin

    2019/05/12 21:37

    回答の近くにコメント欄があります。

    キャンセル

  • NayamiMondai

    2019/05/12 21:59

    asmさんのレスが見当たりません。
    私の質問、初めに画像を添付するのを忘れ、削除依頼する前に、慌てて画像添付をして、送信しました。
    で、asmさん、見当たらないのでしょうかね?

    キャンセル

  • NayamiMondai

    2019/05/12 22:05

    すみません。
    今、コメント欄ありました。
    すみません。

    キャンセル

回答 1

checkベストアンサー

+5

画像を見ると「attachdbfilenameに無効な値をいれようとしている。」と出ています。

ソースを見ると

@"AttachDbFilename =| DataDirectory |\ Database0A.mdf;" +

となっています。

気になるのは、空白を入れていいのか?という部分です。

特に、\直後の空白は気になります。
windowsにおいて、ファイル名の先頭・末尾に空白の入ったファイルはとても扱いが難しいのです。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/05/14 15:41

    ここで分かりやすく答えることはできません。教本をまともなものにかえてください。それで全て解決します。

    キャンセル

  • 2019/05/14 16:11

    話題が変わりますしコメント欄で回答できる分量じゃなくなるので、本回答に関わりのある部分だけ

    > マクロの意味
    |DataDirectory|の一塊が置換のための目印になっているという指摘です。
    wikipedia曰く「テキスト等の変換を記述する変換言語もマクロと呼ばれる」との事です。

    キャンセル

  • 2019/05/14 16:47

    有難うございます。
    此れ(①~④)については、追い追い習得していきます。

    キャンセル

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

  • ただいまの回答率 90.35%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

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

  • C#

    9665questions

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