c# - Mysql连接到服务器没有任何数据库

标签 c# mysql database connection-string

在我的 C# 程序中,如果 mysql 服务器上不存在,我需要创建几个 mysql 数据库。

所以我创建了一个到服务器的连接字符串:

add name="ServerConnection" connectionString="Server=localhost;Port=7070;uid=root;password=pass;"     providerName="MySql.Data.MySqlClient"/>

创建数据库后,如何使用现有连接连接到其中一个数据库?

mysql服务器上的每个数据库都应该有一个连接字符串吗?

谢谢

最佳答案

不,您不需要在配置文件中为每个需要创建的数据库创建单独的连接字符串。
您可以使用位于常用命名空间 MySql.Data.MySqlClient 中的名为 MySqlConnectionStringBuilder 的不太知名的类。

此类允许指定连接字符串所需的任何单个键/值对。
它还接受一个先前的连接字符串作为构造函数参数,该连接字符串在内部拆分为各种键/值对,然后将这些键/值对公开为 MySqlConnectionStringBuilder 实例的属性。< br/> 这允许更改一个属性(例如数据库),然后使用更新后的值重建连接字符串。

例如你可以这样写

MySqlConnectionStringBuidler mcb = new MySqlConnectionStringBuilder("yourinitialconnectionstring");
mcb.Database = "yournewdatabasename";
string newConnString = mcb.GetConnectionString(true);
using(MySqlConnection cnn = new MySqlConnection(newConnString))
{
    ...... 
}

如果您希望返回的连接字符串包含密码,则对 GetConnectionString 的最终调用需要将 bool 值设置为 true。

(示例基于MySql Provider 6.3.6)

关于c# - Mysql连接到服务器没有任何数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26958908/

相关文章:

c# - VS 2012 在错误的线程上中断

c# - 检查文本是否有多个正则表达式匹配

c# - 应用程序中包含的数据库

java - 从数据库获取日期值然后设置为字符串

c# - 使用 FileHelper 库解析具有 n 级层次结构的位置记录文件

mysql - query_cache_type : enable or disable?

php - 使用 php 问题删除 mysql 上的一行

sql - 为什么在 Crystal 报表中使用beforereadingrecords/whilereadingrecords/whileprintingrecords?

android - ListView 和自定义 ListView

mysql - 一张具有多个外键父级的 MySQL 表,还是多个具有一个父级的表?