Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
动态连接字符串数据库c#_C#_Database - Fatal编程技术网

动态连接字符串数据库c#

动态连接字符串数据库c#,c#,database,C#,Database,im始终使用这行代码进行连接: string ConnectString = "datasource = mysource; username = myusername; password = mypassword; database = mydatabasename"; 我这次尝试做的不是每次直接在脚本中写入服务器数据,而是想填充一些文本框。所以我试着做这样的事情 string ConnectString = "datasource = txtmysource.Text; username

im始终使用这行代码进行连接:

 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中textbox的名称。
但是我找不到写作的方法

您可能需要
DbConnectionStringBuilder
,理想情况下,它是适合您的RDBMS的正确版本-因此,对于SQL Server:

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

这里最关键的一点是,如果(例如)任何元素包含保留/非普通字符,如空格、逗号、引号等,它将应用正确的字符转义等。

可能使用如下插值字符串:

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

在有人创建一个名为
a的数据库之前,这是可以接受的;b=“c
-是的,允许。谢谢您现在用solution@RaoufBessghaier在这种情况下,您应该将其标记为答案(绿色勾号)