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

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

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

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

Q&A

0回答

803閲覧

Cardapp データベースを用いた名刺アプリ

professor

総合スコア0

C#

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

0グッド

0クリップ

投稿2021/12/07 01:01

とあるサイトで掲載されていた、C#のデータベースで名刺交換アプリを作成しているのですが、データベース接続のプログラムで多くのコンパイルエラーが発生してしまいます。
「型が見つかりません」や「現在のコンテキストに"passWord"という名前は存在しません」などと表示されるので、おそらく正しいメソッド内に書き込んでいないのが原因だと思っています。

エラーコードが表示されているソースコードであるFm_SQLServerConnection.csとSQLMethod.csの二つを記載しておきます。

参考サイトへのリンク

↓Fm_SQLServerConnection.cs

C#

1using System; 2using System.Collections.Generic; 3using System.ComponentModel; 4using System.Data; 5using System.Drawing; 6using System.Linq; 7using System.Text; 8using System.Threading.Tasks; 9using System.Windows.Forms; 10 11namespace CardApp 12{ 13public partial class Fm_SQLServerConnection : Form 14{ 15public static string ServerName; 16public static string UserName; 17public static string Password; 18public Fm_SQLServerConnection() 19{ 20InitializeComponent(); 21} 22 23private void radioButton1_CheckedChanged(object sender, EventArgs e) 24{ 25UserNameTxtBox.ReadOnly = true; 26PasswordTxtBox.ReadOnly = true; 27} 28 29private void radioButton2_CheckedChanged(object sender, EventArgs e) 30{ 31UserNameTxtBox.ReadOnly = false; 32PasswordTxtBox.ReadOnly = false; 33} 34 35private void BtnConnection_Click(object sender, EventArgs e) 36{ 37try 38{ 39//Windows認証 40ServerName = ServerNameTxtBox.Text; 41//SQLServer認証 42if (radioButton2.Checked) 43{ 44UserName = UserNameTxtBox.Text; 45Password = PasswordTxtBox.Text; 46} 47string sConnectionString = SQLMethod.SQLConnect(ServerName, UserName, Password); //※後ほど作成します。 48using (var conn = new SqlConnection(sConnectionString)) 49{ 50conn.Open(); 51conn.Close(); 52} 53MessageBox.Show("接続が完了しました。"); 54this.DialogResult = System.Windows.Forms.DialogResult.OK; //後ほど解説します。 55this.Close(); 56} 57catch (SqlException error) 58{ 59MessageBox.Show(error.Message); 60MessageBox.Show("接続に失敗しました。"); 61} 62catch (Exception error) 63{ 64MessageBox.Show(error.Message); 65MessageBox.Show("予期せぬ例外が発生しました。"); 66} 67} 68} 69}

↓SQLMethod.cs

C#

1using System; 2using System.Data.SqlClient; 3using System.Windows.Forms; 4using System.Collections.Generic; 5using System.Linq; 6using System.Text; 7using System.Threading.Tasks; 8 9namespace CardApp 10{ 11class SQLMethod 12{ 13public static string SQLConnect(string Source,, string UserName = "", string PW = "") 14{ 15string dataSource = Source; 16string initCatalog = "Cards_DB"; 17string connectionString = ""; 18 19if (string.IsNullOrEmpty(PW)) 20{ 21//Windows認証の接続文字列 22connectionString = @"Server=" + dataSource + @";Database=" 23+ initCatalog + ";Integrated Security=True;"; 24} 25else 26{ 27//SQLServer認証の接続文字列 28userId = UserName; 29passWord = PW; 30 31connectionString = @"Server=" + dataSource + @";Database=" 32+ initCatalog + @";User ID=" 33+ userId + @";Password=" + passWord + @";"; 34} 35return connectionString; 36} 37public static void SQLInsert(string sTable, string sField, string sValue) 38{ 39try 40{ 41using (var conn = new SqlConnection(SQLConnect(Fm_SQLServerConnection.SQLServerName, Fm_SQLServerConnection.UserName, Fm_SQLServerConnection.Password))) 42using (var command = conn.CreateCommand()) 43{ 44//接続を確立 45conn.Open(); 46 47//INSERT文の準備 48command.CommandText = 49string.Format("INSERT INTO {0} ({1}) VALUES ({2});", sTable, sField, sValue); 50 51//SQLの実行 52command.ExecuteNonQuery(); 53 54conn.Close(); 55 56MessageBox.Show("名刺をデータベースに追加しました。"); 57} 58} 59catch (SqlException error) 60{ 61MessageBox.Show(error.ToString()); 62} 63catch (Exception error) 64{ 65MessageBox.Show(error.ToString()); 66} 67} 68public static string SQLSelect(string sField, string sTable, string sWhere = "", string sOrderby = "") 69{ 70try 71{ 72string commandText = ""; 73commandText = 74string.Format("SELECT {0} FROM {1}", sField, sTable); 75if (!sWhere.Equals("")) 76{ 77commandText += string.Format(" WHERE {0}", sWhere); 78} 79if (!sOrderby.Equals("")) 80{ 81commandText += string.Format(" ORDER BY {0}", sOrderby); 82} 83return commandText; 84} 85catch (SqlException error) 86{ 87MessageBox.Show(error.ToString()); 88return ""; 89} 90catch (Exception error) 91{ 92MessageBox.Show(error.ToString()); 93return ""; 94} 95} 96public static void SQLUpdate(string sTable, string sField, string sWhere = "", string sOrderby = "") 97{ 98try 99{ 100using (var conn = new SqlConnection(SQLConnect(Fm_SQLServerConnection.ServerName, Fm_SQLServerConnection.UserName, Fm_SQLServerConnection.Password))) 101using (var command = conn.CreateCommand()) 102{ 103//接続を確立 104conn.Open(); 105 106//Update文の準備 107command.CommandText = 108string.Format("UPDATE {0} SET {1}", sTable, sField); 109if (!sWhere.Equals("")) 110{ 111command.CommandText += " WHERE " + sWhere.ToString(); 112} 113if (!sOrderby.Equals("")) 114{ 115command.CommandText += " ORDER BY " + sOrderby.ToString(); 116} 117//SQLの実行 118command.ExecuteNonQuery(); 119 120conn.Close(); 121 122MessageBox.Show("登録内容を更新しました。"); 123} 124} 125catch (SqlException error) 126{ 127MessageBox.Show(error.ToString()); 128} 129catch (Exception error) 130{ 131MessageBox.Show(error.ToString()); 132} 133} 134public static void SQLInsert(string sTable, string sField, string sValue) 135{ 136try 137{ 138DialogResult dr = MessageBox.Show("本当に削除しますか?", "確認", MessageBoxButtons.YesNo); 139 140if (dr == DialogResult.Yes) 141{ 142using (var conn = new SqlConnection(SQLConnect(Fm_SQLConnection.SQLServerName, Fm_SQLConnection.UserName, Fm_SQLConnection.Password))) 143using (var command = conn.CreateCommand()) 144{ 145//接続を確立 146conn.Open(); 147 148//DELETE文の準備 149command.CommandText = 150string.Format("DELETE FROM {0} ", sTable); 151 152if (!sWhere.Equals("")) 153{ 154command.CommandText += string.Format("WHERE {0}", sWhere); 155} 156if (!sOrderby.Equals("")) 157{ 158command.CommandText += string.Format("ORDER BY {0}", sOrderby); 159} 160//SQLの実行 161command.ExecuteNonQuery(); 162 163conn.Close(); 164 165MessageBox.Show("名刺をデータベースに追加しました。"); 166} 167} 168} 169catch (SqlException error) 170{ 171MessageBox.Show(error.ToString()); 172} 173catch (Exception error) 174{ 175MessageBox.Show(error.ToString()); 176} 177} 178} 179}

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

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

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

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

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

YAmaGNZ

2021/12/07 01:23

質問は編集できますので新たに質問をするべきではありません。
professor

2021/12/07 01:39

編集方法が分からず、仕方なく新しいのを作成しました。 古いほうは削除しておきました
professor

2021/12/07 01:42

追記)ご指摘道理、削除依頼はだしました
退会済みユーザー

退会済みユーザー

2021/12/07 02:04

> 編集方法が分からず、仕方なく新しいのを作成しました。 ではなぜ前のスレッドのコメント欄で聞かなかったの? また、前のスレッドで、何を作っているかと開発環境を書くようお願いしたよね。また無視するの?
退会済みユーザー

退会済みユーザー

2021/12/07 03:28

相変わらずインデントされてない。話が通じない
退会済みユーザー

退会済みユーザー

2021/12/07 04:18

前のスレッドで "質問者が3時間前に「まだ回答を求めています」と言っています。" だそうですけど、その気があるなら、ここでもちゃんとやったら? コードはインデントする、何を作っているかと開発環境を書く。それがどういうことか分からないなら質問する。それすらやる気がない?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問