Cơ sở dữ liệu chuỗi kết nối động c #


9

Tôi luôn luôn sử dụng dòng mã này để kết nối:

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

Điều tôi đang cố gắng thực hiện là thay vì viết mỗi lần dữ liệu máy chủ của tôi theo kịch bản, tôi muốn điền vào một số hộp văn bản. vì vậy tôi cố gắng làm một cái gì đó như thế này

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

trong đó txtmysource.Text / txtmyusername.Text / txtmypassword.Text / txtmydatabasename.Text là tên của hộp văn bản trong UI. nhưng tôi không thể tìm ra cách viết để làm điều đó.

Câu trả lời:


28

Bạn có thể muốn DbConnectionStringBuilder, lý tưởng là cái chính xác cho RDBMS của bạn - vì vậy với SQL Server:

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

Điều cốt yếu ở đây là nó sẽ áp dụng đúng ký tự thoát, v.v ... nếu (ví dụ) bất kỳ phần tử nào chứa các ký tự dành riêng / không tầm thường như khoảng trắng, dấu phẩy, dấu ngoặc kép, v.v.


2

Có thể với chuỗi nội suy như thế này:

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

2
sẽ ổn cho đến khi ai đó tạo ra một cơ sở dữ liệu được gọi là a;b="c- có, được phép
Marc Gravell

Cảm ơn bạn đã sửa chữa với giải pháp của bạn
Raouf Bessghaier

2
@RaoufBessghaier bạn nên đánh dấu nó là câu trả lời (đánh dấu màu xanh lá cây) trong trường hợp đó
Marc Gravell
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.