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

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

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

Microsoft Visual Studio 2013は、Microsoftによる統合開発環境(IDE)であり、多種多様なプログラミング言語に対応しています。 Visual Studio 2012の次のバージョンです

Q&A

解決済

1回答

4029閲覧

Visual Studio 2015 C#で「ExecuteReaderがハンドルされませんでした!」というエラーがでてしまいます

vs-ty

総合スコア10

Visual Studio 2013

Microsoft Visual Studio 2013は、Microsoftによる統合開発環境(IDE)であり、多種多様なプログラミング言語に対応しています。 Visual Studio 2012の次のバージョンです

0グッド

0クリップ

投稿2016/04/28 18:16

分からないことがあり、色々調べているうちに、このコーナーを知りました。
もし、アドバイスをいただけますと大変助かります。
よろしくご教授お願いいたします。

私は、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(); } }

}

よろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

Visual C# 2013 パーフェクトマスター
型;SystemDataSqlClient.SqlExceptionのハンドルされていない例外が
SystemData.dllで発生しました。」

正しく調べると、もっとちゃんとしたエラー原因が、IDEで判る筈ですが、
慣れない間は難しいのでしょうねぇ。

エラーの本当の原因が書かれていないので、あてずっぽうですが、
LocalDB:データベースのファイル(の有無が書かれていませんが、)
準備していなければ、
秀和のサイトで、サンプルをダウンロードするか、
書籍に、Database1.mdfの準備の仕方が載っている筈ですから、
データベースの準備をしてください。

sual C# 2013 パーフェクトマスター
http://www.shuwasystem.co.jp/support/7980html/4019.html

投稿2016/04/28 18:33

daive

総合スコア2028

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

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

vs-ty

2016/04/28 22:06

ご回答ありがとうございました。 大変申し訳ございませんでした。 エラーの原因がスペルミスということが分かりました。 FROMと書くべきところをFORMと書いておりました。 スペルミスにも気づかず、3日もあちこち調べまわっていた自分が情けなくなります。 本当にご迷惑をおかけいたしました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問