前提・実現したいこと
未経験からエンジニア職に就いた者です。
現在、新人研修の一環としてC#で「住所録」を作成しています。
実現したいこととして、
・入力フォームに入力した情報を「登録」ボタンを押下したらSQLサーバーに接続して保存する。
というのを実現したいと考えているんですが、各情報を入力し「登録」ボタンを押下した際にシステムが止まってしまい、またどう対処していいかも全く分かりません、。完全に手詰まりとなってしまいましたので質問してみることにしました。
同サイトの似た質問で参考にさせてもらったものがありますのでそちらも記載しておきます。
参考URLサイト
https://teratail.com/questions/166299
拙い文章と不十分な説明は重々承知しております。
お力添えの方よろしくお願いします。
発生している問題・エラーメッセージ
System.NullReferenceException: 'オブジェクト参照がオブジェクト インスタンスに設定されていません。' System.Configuration.ConnectionStringSettingsCollection.this[string].get が null を返しました。
該当のソースコード
C#
1 private void Button1_Click(object sender, EventArgs e) 2 { 3 string No = textBox1.Text; 4 string Name_sei = textBox2.Text; 5 string Name_mei = textBox3.Text; 6 string Postal_code = textBox4.Text; 7 string Address = textBox5.Text; 8 string Tel_no = textBox6.Text; 9 string Mail_address = textBox7.Text; 10 string Create_user = comboBox1.Text; 11 string Create_date = dateTimePicker1.Text; 12 //接続文字列の取得 13 var connectionString = ConfigurationManager.ConnectionStrings["sqlsvr"].ConnectionString; 14 15 //データベース接続の準備 16 using (var connection = new SqlConnection(connectionString)) 17 using (var command = connection.CreateCommand()) 18 { 19 try 20 { 21 //データベースの接続開始 22 connection.Open(); 23 24 //SQLの準備 25 command.CommandText = "INSERT INTO Products (No,Name_sei,Name_mei,Postal_code,Address,Tel_no,Mail_address,Create_user,Create_date) VALUES(@No,@Name_sei,@Name_mei,@Postal_code,@Address,@Tel_no,@Mail_address,@Create_user,@Create_date)"; 26 command.Parameters.Add(new SqlParameter("@No", No)); 27 command.Parameters.Add(new SqlParameter("@Name_sei", Name_sei)); 28 command.Parameters.Add(new SqlParameter("@Name_mei", Name_mei)); 29 command.Parameters.Add(new SqlParameter("@Postal_code", Postal_code)); 30 command.Parameters.Add(new SqlParameter("@Address", Address)); 31 command.Parameters.Add(new SqlParameter("@Tel_no", Tel_no)); 32 command.Parameters.Add(new SqlParameter("@Mail_address", Mail_address)); 33 command.Parameters.Add(new SqlParameter("@Create_user", Create_user)); 34 command.Parameters.Add(new SqlParameter("@Create_date", Create_date)); 35 36 //SQLの実行 37 command.ExecuteNonQuery(); 38 39 } 40 finally 41 { 42 //データベースの接続終了 43 connection.Close(); 44 } 45 } 46 47 48 }
試したこと
調べていく中にapp.config?などがありましたが理解できなかったのでそのまま触っていません。
補足情報(FW/ツールのバージョンなど)
VisualStudio2017
MicrosoftSQLServer2017
追記
下記コードのthrow;でシステムが止まっています。
「ハンドルされていない例外」
System.Data.SqlClient.SqlException: 'オブジェクト名 'Products' が無効です。'
C#
1catch (Exception exception) 2 { 3 Console.WriteLine(exception.Message); 4 throw; 5 }
回答3件
あなたの回答
tips
プレビュー