動的接続文字列データベースC#


9

私は常にこのコード行を接続に使用します:

 string ConnectString = "datasource = mysource; username = myusername; password = mypassword; database = mydatabasename";

今回私がしようとしていることは、スクリプトのサーバーデータを直接テキストボックスに入力するたびに書き込むのではなく、だから私はこのようなことをやろうとする

string ConnectString = "datasource = txtmysource.Text; username = txtmyusername.Text; password = txtmypassword.Text; database = txtmydatabasename.Text";

ここで、txtmysource.Text / txtmyusername.Text / txtmypassword.Text / txtmydatabasename.Textは、UI内のテキストボックスの名前です。しかし、それを行うための書き込み方法が見つかりません。

回答:


28

おそらくDbConnectionStringBuilder、理想的にはRDBMSに適したものが必要です-SQL Serverの場合:

var builder = new SqlConnectionStringBuilder
{
    UserID = txtmyusername.Text,
    DataSource = txtmysource.Text,
    Password = txtmypassword.Text,
    InitialCatalog = txtmydatabasename.Text,
};
var connectString = builder.ConnectionString;

ここで重要なのは、(たとえば)要素のいずれかに空白、コンマ、引用符などの予約済み/非自明文字が含まれている場合に、適切な文字エスケープなどを適用することです。


2

多分このような補間文字列で:

string ConnectString = $"datasource = {txtmysource.Text}; username = {txtmyusername.Text}; password = {txtmypassword.Text}; database = {txtmydatabasename.Text}";

2
これは、だれかが呼ばれるデータベースを作成するまでa;b="c
問題ありません

あなたの解決策で今すぐ修正していただきありがとうございます
Raouf Bessghaier

2
@RaoufBessghaierその場合は、回答(緑色のチェックマーク)としてマークする必要があります
マークグラベル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.