Visual Studio 2015 C#で「ExecuteReaderがハンドルされませんでした!」というエラーがでてしまいます
解決済
回答 1
投稿
- 評価
- クリップ 0
- VIEW 2,376
分からないことがあり、色々調べているうちに、このコーナーを知りました。
もし、アドバイスをいただけますと大変助かります。
よろしくご教授お願いいたします。
私は、Visual Studio 2015を利用してVisual C#の勉強を始めたばかりの人間です。
なにぶん勉強したてで、「そんなことも分からないのか!」と言われそうで恐縮なのですが、勇気を出して質問させていただきました。
参考本は「Visual C# 2013パーフェクトマスター」とう分厚い本です。
私が使っているのはVisual Studio 2015ですので、多少本とは異なる部分があるのかなと思いますが、定かではありません。
そこで、この本の849ページにあるサンプルプログラムで「データベースプログラムの作成/テーブルデータの全件表示」とうプログラムを実行させようとしたのですが、上手くいきません。
「ExecuteReaderがハンドルされませんでした!」というエラーがでてしまいます。
エラーの場所のコードは下の部分です。
rd = cmd.ExecuteReader();
そして、エラーの説明で
「型;SystemDataSqlClient.SqlExceptionのハンドルされていない例外がSystemData.dllで発生しました。」
と表示されています。
プロジェクト:WindowsFormsApplication4
Form1.cs
内部のコードになります。
コードは下の通りとなります。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication4
{
public partial class Form1 : Form
{
private SqlConnection cn = new SqlConnection();
private SqlCommand cmd = new SqlCommand();
private SqlDataReader rd;
private string cnstr = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;Connect Timeout=30";
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
cn.ConnectionString = cnstr;
cn.Open();
cmd.Connection = cn;
cmd.CommandType = CommandType.Text;
cmd.CommandText = "SELECT * FORM[dbo].[Table]";
rd = cmd.ExecuteReader();
while (rd.Read())
listBox1.Items.Add(
String.Format("[{0}] {1,-10} {2,-10} {3.-30} [Tel]{4}", rd["Id"], rd["Name"], rd["ZipCode"], rd["Address"], rd["Tel"]));
rd.Close();
cn.Close();
}
}
}
よろしくお願いいたします。
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
checkベストアンサー
0
>Visual C# 2013 パーフェクトマスター
>型;SystemDataSqlClient.SqlExceptionのハンドルされていない例外が
>SystemData.dllで発生しました。」
正しく調べると、もっとちゃんとしたエラー原因が、IDEで判る筈ですが、
慣れない間は難しいのでしょうねぇ。
’
エラーの本当の原因が書かれていないので、あてずっぽうですが、
LocalDB:データベースのファイル(の有無が書かれていませんが、)
準備していなければ、
秀和のサイトで、サンプルをダウンロードするか、
書籍に、Database1.mdfの準備の仕方が載っている筈ですから、
データベースの準備をしてください。
sual C# 2013 パーフェクトマスター
http://www.shuwasystem.co.jp/support/7980html/4019.html
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.22%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
2016/04/29 07:06
大変申し訳ございませんでした。
エラーの原因がスペルミスということが分かりました。
FROMと書くべきところをFORMと書いておりました。
スペルミスにも気づかず、3日もあちこち調べまわっていた自分が情けなくなります。
本当にご迷惑をおかけいたしました。