【问题标题】:MySql ConnectionString without Database name to create a database in c#没有数据库名称的MySql ConnectionString在c#中创建数据库
【发布时间】:2014-07-03 19:20:36
【问题描述】:

我遇到了一种情况,我确实需要通过使用进入 mysql 服务器所需的连接字符串在 MYSQL 中创建一个数据库。直到现在我已经使用了带有数据库名称的连接字符串。所以在这种情况下,连接字符串结构将是什么在 mysql 服务器中执行我的创建数据库查询。

我需要本地主机的连接字符串..

请帮帮我..

【问题讨论】:

  • @SonerGönül 如何在没有在 Connectionstring 中指定数据库名称的情况下打开与 mysql 服务器的连接
  • mysql 提供了一些默认数据库,如 mysql、information_schema.. 尝试使用任何数据库名称

标签: c# mysql database-connection


【解决方案1】:

您可以选择省略连接字符串中的database 参数。这样做,您将连接到数据库服务器,但您没有连接到任何特定的数据库。

Example from MySQL documentation的一部分

MySql.Data.MySqlClient.MySqlConnection conn;
string myConnectionString;

//myConnectionString = "server=localhost;uid=root;pwd=12345;database=test;";
myConnectionString = "server=localhost;uid=root;pwd=12345;";

try
{
    conn = new MySql.Data.MySqlClient.MySqlConnection();
    conn.ConnectionString = myConnectionString;
    conn.Open();
}
catch (MySql.Data.MySqlClient.MySqlException ex)
{
    MessageBox.Show(ex.Message);
}

但您必须使用数据库名称来限定查询中的表或其他对象名称。

示例

select * from so.tbl_so_q23676633;

在上面的示例中,'so' 是表 'tbl_so_q23676633' 的数据库限定符。

【讨论】:

    【解决方案2】:

    使用 OleDb 您可以实现这一点。 // OleDb

        using System.Data.OleDb;
        OleDbConnection conn = new OleDbConnection(); 
        conn.ConnectionString = "Provider=MySqlProv; Data Source=ServerName; User id=UserName; Password=Secret";
        conn.Open(); 
    

    更多信息MySQL Connection string without database 另一个有用的链接Types of MySQL connection strings

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-05
      • 2010-10-29
      • 2014-01-20
      • 1970-01-01
      • 1970-01-01
      • 2015-06-13
      • 2010-10-30
      • 1970-01-01
      相关资源
      最近更新 更多