C#を使用して、SQLSeverに接続したいです。
下記のサイトをもとに
ボタンを押下すると、DBに接続できるアプリを作成したのですが、エラーがでて、SQL Severに接続できません。
C# で SQL Server に 接続する 方法
エラー内容は、
「System.NullReferenceException: 'オブジェクト参照がオブジェクト インスタンスに設定されていません。'
System.Configuration.ConnectionStringSettingsCollection.this[string].get が null を返しました。」
です。
そもそも、SQL Severに接続するファイル名を指定していないからではないかと考えております。
お手数ですが、どこに何を追記・修正すればよいか、ご教示頂きたいです。
↓「app.config」は、\bin\Debug直下に配置しております。
appconfig.config
1<configuration> 2 <connectionStrings> 3 <add name="sqlsvr" 4 connectionString="Data Source=(XXXXXX);Persist Security Info=True;User ID=(sa);Password=(manager)" 5 providerName="System.Data.SqlClient"/> 6 </connectionStrings> 7</configuration>
↓ボタンを押下すると、DBConectクラスにDB情報を取得する
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace チュートリアル_ { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { var dbconect = new DBConect(); var a= dbconect.GetConnectionString(); MessageBox.Show(a); } } }
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data; using System.Data.SqlClient; using System.Configuration; //using System.Data.SqlClient; namespace チュートリアル_ { class DBConect { public string GetConnectionString() { return ConfigurationManager.ConnectionStrings["sqlsvr"].ConnectionString; } }
接続文字列が取得できていないことによるエラーのようですが、そこを解決できても接続文字列にサーバー名が指定されてないので接続できないのでは?
すいません。サーバー名は都合により、「XXXX」表記とさせて頂きました。実際はサーバー名を設定しております。(SQL Serverを立ち上げたときに表示される小画面のサーバー名)わかりづらく申し訳ありません。
同じサーバー名、ユーザー名、パスワードで、SSMS またはコマンドラインから sqlcmd で接続できますか? であれば、他の回答者の方が指摘されているようにプロジェクト直下の app.config にそれを設定すれば良さそう思えます。
質問には「SQL Server に接続できない」と書いてあったんですが、コードを見ると接続に行ってはいなくて、単に接続文字列を取得しているだけのようですが、であればそのように質問を書き直していただけませんか。
デバッガ上で動かしているのならば、エラー箇所(多分、GetConnectionString())で止めて、nullとなっているものを確認できませんか?
質問の表題を変更致しました。また、エラー内容の詳細画像を添付致しました。定義ファイルが読み取れていないとおもうのです。。。
上のコメントで「他の回答者の方が指摘されているようにプロジェクト直下の app.config にそれを設定すれば良さそう思えます」と書きましたが、そこはちゃんとやってもらえたのでしょうか? 下の私の回答の画像を見てください。
回答3件
あなたの回答
tips
プレビュー







