Dinamik bağlantı dizesi veritabanı c #


9

im her zaman bağlantı için bu kod satırını kullanın:

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

Ne im thistime yapmaya çalışıyorum yerine benim sunucu verileri doğrudan komut dosyası bazı metin kutusunu doldurmak istiyorum yazma. bu yüzden böyle bir şey yapmaya çalışıyorum

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

burada txtmysource.Text / txtmyusername.Text / txtmypassword.Text / txtmydatabasename.Text kullanıcı arayüzündeki metin kutusunun adlarıdır. ama yazma yolunu bulamıyorum.

Yanıtlar:


28

Muhtemelen DbConnectionStringBuilderRDBMS'niz için ideal olanı istiyorsunuz - SQL Server ile:

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

Buradaki en önemli bit, (örneğin) herhangi bir unsur boşluk, virgül, tırnak vb. Gibi ayrılmış / önemsiz karakterler içeriyorsa, doğru karakter çıkışından vb. Uygulanacaktır.


2

Belki böyle interpolate dize ile:

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

2
Birisi adlı bir veritabanı oluşturana kadar bu iyi a;b="c- evet, izin verilir
Marc Gravell

Çözümünüzle düzelttiğiniz için teşekkür ederiz
Raouf Bessghaier

2
@RaoufBessghaier bu durumda cevap (yeşil kene) olarak işaretlemelisiniz
Marc Gravell
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.