【问题标题】:What is wrong with this Database connection string?这个数据库连接字符串有什么问题?
【发布时间】:2012-12-19 09:45:17
【问题描述】:

我正在尝试使用以下代码连接到我的远程 MySQL 服务器。你能告诉我我做错了什么吗,因为用变量替换数据库连接信息似乎不起作用。

   using MySql.Data.MySqlClient;       

   string db_Server = "10.0.0.0";
   string db_Name   = "myDatabase";
   string db_User   = "myUser";
   string db_Pass   = "myPassword";


   // Connection String
   MySqlConnection myConnection = new MySqlConnection("server = {0}; database = {1}; uid = {2}; pwd = {3}", db_server, db_Name, db_User, db_Pass);

作为一名 PHP 开发人员,我更喜欢使用上面的代码,而不是下面的刻意转换:

   MySqlConnection myConnection = new MySqlConnection("server=10.0.0.0; database=myDatabase; uid=myUser; pwd=myPassword");

但正如你在这张图片中看到的,我得到了很多红色曲线:http://screencast.com/t/xlwoG9by

【问题讨论】:

  • db_Server, db_Name, db_User, db_Pass 不是db_Server, db_User, db_Pass, db_Name

标签: c# mysql database-connection


【解决方案1】:

你的参数顺序不对,应该是:

db_server, db_Name, db_User, db_Pass

目前是:

"server = {0}; database = {1}; uid = {2};   pwd = {3}"
       db_Server         db_User   db_Pass   db_Name

所以你的陈述应该是:

MySqlConnection myConnection = new MySqlConnection(string.Format(
"server = {0}; database = {1}; uid = {2}; pwd = {3}", 
db_Server,db_Name, db_User, db_Pass));

编辑: 根据 cmets 和讨论,您得到的错误是您在课堂级别尝试所有内容。您应该在方法中包含这些行,并在需要的地方调用该方法。比如:

class MyClass
{
    string db_Server = "10.0.0.0";
    string db_User = "myUser";
    string db_Pass = "myPassword";
    string db_Name = "myDatabase";


    public MySqlConnection GetConnection()
    {
        MySqlConnection myConnection = new MySqlConnection(string.Format(
                   "server = {0}; database = {1}; uid = {2}; pwd = {3}",
                    db_Server, db_Name, db_User, db_Pass));
        return myConnection;
    }
}

【讨论】:

  • 你可能还需要一个端口,在服务器之后。
  • 记得包含string.Format
  • @Jeagr,您是否包含了 String.Format ?你错过了
  • @Jeagr,检查我在回答中写的声明,您缺少string.Format(.....),复制粘贴我在 myConnection 的回答中的代码,如果错误仍然存​​在,请告诉我跨度>
  • @Jeagr,您正在使用占位符格式化字符串,您还必须使用 string.Format
【解决方案2】:
 MySqlConnection myConnection = new MySqlConnection(string.Format("server = {0}; database = {1}; uid = {2}; pwd = {3}", db_Server, db_User, db_Pass, db_Name))

string.Format() 丢失

【讨论】:

  • 与string.Format其他问题是参数错误,需要调整
  • 是的。错过了。但基本上红色曲线出现是因为缺少 string.Format() ;)
猜你喜欢
  • 2010-12-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-04
  • 1970-01-01
相关资源
最近更新 更多