在我的程序C#程序中,如果mysql服务器上不存在,我需要创建几个mysql数据库。
所以我创建了一个到服务器的连接字符串:
add name="ServerConnection" connectionString="Server=localhost;Port=7070;uid=root;password=pass;" providerName="MySql.Data.MySqlClient"/>
创建数据库后,如何使用现有连接连接到其中一个数据库?
mysql服务器上的每个数据库都应该有连接字符串吗?
由于
答案 0 :(得分:1)
不,您不需要在配置文件中为您需要创建的每个数据库创建单独的连接字符串。
您可以使用通常名称空间MySqlConnectionStringBuilder
中名为MySql.Data.MySqlClient
的名称不是众所周知的类。
此类允许指定connectionstring所需的任何单个键/值对
它还接受作为构造函数参数的先前连接字符串,该字符串在各种键/值对中进行内部拆分,然后将这些键/值对公开为MySqlConnectionStringBuilder
实例的属性。
这允许更改一个属性(例如,数据库),然后使用更新的值重建连接字符串。
所以例如你可以写
MySqlConnectionStringBuidler mcb = new MySqlConnectionStringBuilder("yourinitialconnection");
mcb.Database = "yournewdatabasename";
string newConnString = mcb.GetConnectionString(true);
using(MySqlConnection cnn = new MySqlConnection(newConnString))
{
......
}
如果希望返回的连接字符串包含密码,则对GetConnectionString
的最终调用需要将布尔值设置为true。
(基于MySql Provider 6.3.6的示例)