我在我的应用程序中使用了类似的东西
MySqlConnection cnn = new MySqlConnection("Server=myServerAddress;" +
"Database=myDataBase;" +
"Uid=myUsername;" +
"Pwd=myPassword;");
这每次都会改变,因为我们使用我们的应用程序部署数据库。
它工作正常。我输入 using(new connection(cnn)){ query... }
然后继续。
我已经使用在 Windows ODBC 数据源管理员中定义的连接来处理数据集。
但我很好奇,有没有办法使用我的本地测试数据库使用 visual studio 的数据集项,然后在运行时更改数据集的连接?更好的是,我可以使用 c# 在运行时以编程方式添加 ODBC 数据源吗?
最佳答案
通常,连接字符串是从应用程序同一文件夹中的应用程序 exe.config 文件加载的。可以使用项目属性中的“设置”选项卡定义此连接字符串。
- 右键单击项目的属性
- 选择“设置”选项卡(如果您没有,请确认创建 设置)
- 单击列类型中的组合框并选择连接字符串
- 为您的连接命名
- 在“值”列中键入连接字符串(示例位于 connectionstrings.com )
现在在你的项目文件中,你应该有文件 app.config(变成你的 app.exe.config),其中有一个像这样的部分
<configuration>
<connectionStrings>
<add name="MyAppConnection"
connectionString="Server=myServerAddress;Database=myDB;Uid=user;Pwd=pass;" />
</connectionStrings>
</configuration
此时你在程序中读取它使用
string conString = ConfigurationManager
.ConnectionStrings["MyAppConnection"]
.ConnectionString;
相反,如果您想在运行时(根据用户输入、您自己的配置文件等)自行构建连接字符串,那么您可以利用 MySqlConnectionStringBuilder 类的功能
MySqlConnectionStringBuilder msb = new MySqlConnectionStringBuilder();
msb.Server = "localhost";
msb.Port = 3306;
msb.UserID = "root";
msb.Password = "xxx";
msb.Database = "test";
MySqlConnection cnn = new MySqlConnection(msb.ConnectionString);
cnn.Open();
当然,这些文字值可以用您自己的变量代替。 此类的文档出奇地难以找到。最好的文档是 Sql Server equivalent 之一.有趣的是,您可以从配置文件中读取静态连接字符串,然后仅更改所需的属性。
string conString = ConfigurationManager
.ConnectionStrings["MyAppConnection"]
.ConnectionString;
MySqlConnectionStringBuilder msb = new MySqlConnectionStringBuilder(conString);
msb.Database = "AnotherDB";
MySqlConnection cnn = new MySqlConnection(msb.ConnectionString);
关于mysql - 在 visual studio 中使用 MySQL 并在运行时更改连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24149645/