- - PR -
データソース構成ウィザードでテキストファイルの読み込みをしたい
1
投稿者 | 投稿内容 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-11-30 13:00
VisualStudio2005でデータソースを追加するときは
データソース構成ウィザードを開き、「データ接続の選択」で「新しい接続」etc・・・という順番でしますよね。 で、接続できたとき接続文字列は Data Source=sampleDS; Initial Catalog=sampleDB; Integrated Security=True のようになると思います。 このときこの接続文字列をテキストファイルで読み込むようにできないのでしょうか? 定義したデータセット内TableAdapterの、ConnectionStringを見ると全て上記の接続文字列で接続しているようですので、これらを全てテキストファイルを読み込むように指定できる様にしたいのですが。 調べても構成ウィザードでテキストファイルを読み込む方法がわかりませんでしたので ご存知の方いらっしゃいましたらぜひお教え下さい。 | ||||||||||||||||||||||||||||
|
投稿日時: 2007-11-30 15:16
さかもとと申します。
「テキストファイルで読み込む」というのは何を指していますか? 例えば、設定ファイル.txt というテキストファイルが外部にあって、接続文字列をそこで管理しているということでしょうか? ウィザードが終了した後にプロジェクト内にapp.config(web.config)というファイルができているかと思います。ウィザードで読みこまれるのはこのファイル内の接続文字列になると思いますが、app.configを使わずに何か別のテキストファイルを読み込む、ということでしょうか? _________________ ------------------------------------------ 拝啓、さかもとと申します♪ | ||||||||||||||||||||||||||||
|
投稿日時: 2007-11-30 15:33
ConnectionStringはアプリケーション設定ファイル(.config)というテキストファイルに保存されているわけだが。
やりたいことがよく分からないのですが、 別々のアセンブリで、同一のConnectionStringを使用しているので共通化したい ってことで、おk? もしそうなら、アプリケーション設定は外部の別のファイルからインクルードすることが可能です。 方法はプロジェクト内にapp.configというファイルがあるはず(一度ビルドすれば自動的に作られるはず)なので、 app.configを開き、
をコピーして、そのまま別のファイルに貼り付け、保存します。 次に、すべてのアセンブリに対して、app.configのConnectionStringを以下のように書き換えます。
# カレントディレクトリに置くなら、ファイル名で可 ポイントはconfigSource="外部ファイルへのパス" これで、ConnectionStringを共通化することが出来ます。 詳細についてはセクションの要素によって継承される全般属性(microsoft.com)を呼んで勉強して。 あと過去ログ(atmarkit.co.jp) | ||||||||||||||||||||||||||||
|
投稿日時: 2007-11-30 16:28
さかもとさん、かずくんさん返答ありがとうございます。
「テキストファイルで読み込む」というのは何を指していますか?というのはまさに
ということです。さかもとさんが仰られる通りですが、例えば "C:\\プロジェクトフォルダ" 内に "設定ファイル.txt" というのがあって、接続文字列はそこで管理しているものを指します。
app.configを使わずに何か別のテキストファイルを読み込む場合ですと、 ウィザードを使わずコードで接続、DataSetやTableAdapterの設定をすることになると思いますので その手間を省くためにウィザードは必須だと考えています。 要は結果的に一つのところで管理・設定できれば良いので、app.configを使って編集できるならそれでも良いと考えています。 なのでかずくんさんの仰る、
というのが私のやりたかったことです。知識不足、説明不足で申し訳ありません。 ひとまず、かずくんさんの教えてくださった方法でやってみます。結果は後ほど返答しますね。 | ||||||||||||||||||||||||||||
|
投稿日時: 2007-12-01 19:27
どうもうまくできません。
という事でしたので、app.configを開き <?xml version="1.0" encoding="utf-8" ?> <connectionStrings> <add name="SampleSystem.My.MySettings.HikariConnectionString" connectionString="Data Source=SampleDS;Initial Catalog=SampleDB;Integrated Security=True" providerName="System.Data.SqlClient" /> </connectionStrings> このコードをメモ張に貼り付け、拡張子をxmlに変えてカレントディレクトリに保存。 (名前は ConnectionStrings.xml です。)app.config内の記述は <!--コメントにしています--> <!--<connectionStrings> <add name="SampleSystem.My.MySettings.HikariConnectionString" connectionString="Data Source=SampleDS;Initial Catalog=SampleDB;Integrated Security=True" providerName="System.Data.SqlClient" /> </connectionStrings>--> <connectionStrings configSource="C/ConnectionStrings.xml" /> に変えてデバッグしてみましたが、 'System.Data.SqlClient.SqlConnection' のタイプ初期化子が例外をスローしました。 とエラーになります。 拡張子xmlをconfigに変更したりもしてみましたが、同様のエラーが起こります。 何が原因なのでしょうか? | ||||||||||||||||||||||||||||
|
投稿日時: 2007-12-03 09:51
これを取り除いた場合、結果が変わりますでしょうか?
パスの指定が間違ってるような?
それとも.net frameworkがよきに計らってくれるのかな? 私の場合、コンパイル後、切り出したファイルがアプリケーション構成ファイル(.exe.config)と同じフォルダに配置されるようにしているため、気にしていなかったのですが、 接続先の構成をひとつのファイルにまとめたい(vsug.jp)より引用
との事らしいので、ConnectionStrings.xmlの配置先を変えてみるとうまくいくかもしれません。 それ以前に、Setting.settingの内容を変更したときにConnectionStrings.xmlにその内容が反映されてますか? |
1