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

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

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

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

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Q&A

2回答

1382閲覧

データベース接続のエラーについて

melon85

総合スコア0

C#

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

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

0グッド

0クリップ

投稿2021/03/10 05:56

編集2021/03/10 06:40

イメージ説明初心者です
WindowsのC#で予約システムを作っています
VisualStudio、MySQL
顧客から受け付けた予約、(時間やメニュー)などをデータベースに保存するということをしたいです

実行しても最後から2行目の cmd.ExecuteReader();がエラーになってしまいます
こんなこと質問してしまいすいません。
わかる方教えていただけますでしょうか。

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 予約システム
{
public partial class Form2 : Form
{
SqlConnection cn;

public Form2() { InitializeComponent(); cn = new SqlConnection(); //接続文字列の設定 cn.ConnectionString = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\csharp\Desktop\予約システム\予約システム\Database1.mdf;Integrated Security=True"; ConectDB(); } private void ConectDB() { //データベースへの接続 cn.Open(); //SQL文の作成準備 SqlCommand cmd = new SqlCommand(); cmd.Connection = cn; //SQL文はText cmd.CommandType = CommandType.Text; //SQL文設定 cmd.CommandText = "SELECT * FROM [dbo].[Table]"; //SQL文の実行 rdに読込 SqlDataReader rd; rd = cmd.ExecuteReader(); string str = ""; while (rd.Read()) //rdから1行ずつ取り出し { str += rd["id"] + "\t" + rd["name"] + "\t" + rd["date"] + "\t" + rd["menu"] + "\t" + rd["tel"] + "\r\n"; } cn.Close(); } private void button1_Click(object sender, EventArgs e) { //データベースへの接続 cn.Open(); //SQL文の作成準備 SqlCommand cmd = new SqlCommand(); cmd.Connection = cn; //SQL文はText cmd.CommandType = CommandType.Text; //SQL文設定 cmd.CommandText = "INSERT INTO [dbo].[Table](name, date,menu,tel) VALUES (N'" + name + "'," + date + "'," + menu + "'," + tel + ")"; cmd.ExecuteReader(); cn.Close(); } }

}

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2021/03/10 06:08 編集

コードは ``` と ``` で囲ってください(``` はバッククォート 3 つ)。インデントされて見やすくなるので。 何を作っているかと(Windows Forms? WPF? コンソールアプリ? その他?)と開発環境(OS, Visual Studio のバージョン、DB は何かとそのバージョン・エディション、.NET か Core のどっちかとそのバージョンなど)を書いてください。コードを読めばわかるとは言わないでくださいね。あなたが質問の一行目にそれを書けば閲覧者は中まで読む手間は省けるのですから。
退会済みユーザー

退会済みユーザー

2021/03/10 06:08

エラーメッセージをコピペして質問文に記載してください。エラーメッセージだけで原因と解決策が分かることが多々あります。なのでエラーメッセージを書くのは質問する際の基本のキです。
退会済みユーザー

退会済みユーザー

2021/03/10 06:11 編集

> 実行しても最後から2行目の cmd.ExecuteReader();がエラーになってしまいます エラーの内容を記載してください。(部分的ではなくそのまま) エラーメッセージやスタックトレースには解決の為のヒントになる情報が詰まっています。
退会済みユーザー

退会済みユーザー

2021/03/10 06:12 編集

被ってしまいましたね、失礼しました。
退会済みユーザー

退会済みユーザー

2021/03/10 06:51

コードは ``` と ``` で囲ってください(``` はバッククォート 3 つ)。インデントされて見やすくなるので。インデントされてないコードは質問者さん自身も読む気がしないのでは? 閲覧者・回答者はなおさらです。読んでもらえないと話が始まらないのですから読んでもらえる努力をしませんか?
退会済みユーザー

退会済みユーザー

2021/03/10 06:53

何を作っているかと(Windows Forms? WPF? コンソールアプリ? その他?)と開発環境(OS, Visual Studio のバージョン、DB は何かとそのバージョン・エディション、.NET か Core のどっちかとそのバージョンなど)を書いてください。コードを読めばわかるとは言わないでくださいね。あなたが質問の一行目にそれを書けば閲覧者は中まで読む手間は省けるのですから。 > MySQL 違うのでは?
退会済みユーザー

退会済みユーザー

2021/03/10 09:02 編集

ここにもと有ったコメントは回答欄に移動させました。
退会済みユーザー

退会済みユーザー

2021/03/24 07:13

質問者さん、無言ですが、回答がついてますのでそれに対するフィードバックを書いてください。役に立った / 立たなかったぐらいは回答できるのでは? 欲に立たなかったならどこがダメだったのかを書くとより有用な回答が得られるかもしれません。とにかく無言で放置は NG です。
melon85

2021/03/26 06:09 編集

遅れて申し訳ございません。 解決できました。 写真のようにrd=cmd.ExecuteReader():にエラーが出ていて、回答していただいたところをこのように改善したら治りました。↓ cmd.CommandText="INSERT INTO[dbo][Table](Name,Date,Menu,Tel)VALUES(N'"+ name + "',N'"+ date+"',N'"+ menu +"',N'"+ tel+"')": シングルクォーテーションをつけたり位置を気をつけたら改善できました! ありがとうございました
退会済みユーザー

退会済みユーザー

2021/03/26 06:13

解決できたとのことですのでこのスレッドはクローズ願います。
退会済みユーザー

退会済みユーザー

2021/03/26 06:16

今回も問題の原因とは直接関係ないことですが、INSERT の場合は ExecuteReader ではなく ExecuteNonQuery を使いましょう。
退会済みユーザー

退会済みユーザー

2021/04/06 12:02

このスレッドをクローズしてください。
guest

回答2

0

INSERT文のシングルクォートの位置を間違えています。

date + "'," + menu + "',"

恐らく↓が正しい位置かと思います。
date + ",'" + menu + "',"

投稿2021/03/11 12:59

sinya0320

総合スコア211

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

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

0

cmd.ExecuteReader();がエラーになってしまいます

追加で張り付けた画像を見ると ↓ これが間違っていると言っているようです。

"INSERT INTO [dbo].[Table](name, date,menu,tel) VALUES (N'" + name + "'," + date + "'," + menu + "'," + tel + ")";

投稿2021/03/10 09:01

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問