2009-11-24 6 views
0

базовая база данных по проекту изменилась с sql 2005 на MySql 5.1 Код имеет множество способов, подобных приведенным ниже. Я предполагаю, что это всего лишь случай переключения переменной «con» SqlConnection на специфическое соединение MYSql. Имел ли кто-нибудь опыт с этим? Я никогда не касался mySql db. Любая помощь очень ценится.Подключение к MYSQL из приложения C#

private SqlConnection con; 

    public User LogonUser(string pUserName, string pPassword) 
    { 

     con = new SqlConnection(); 
     con.ConnectionString = DatabaseConstants.DB_CONN_STRING; 


     using (con) 
     { 
      con.Open(); 
      var command = new SqlCommand(); 


      command.Connection = con; 
      command.CommandText = "SELECT id FROM Users WHERE userName = @userName AND password = @password"; 
      command.CommandType = CommandType.Text; 

      var userName = new SqlParameter("@userName", pUserName); 
      var password = new SqlParameter("@password", pPassword); 

      command.Parameters.Add(userName); 
      command.Parameters.Add(password); 


      User user; 
      var dr = command.ExecuteReader(); 
      if (dr != null) 

       if (dr.HasRows) 
       { 
        while (dr.Read()) 
        { 
         user = new User(); 
         user.id = dr.GetString(0); 
         return user; 
        } 
       } 
       else 
       { 
        throw new Exception("Can not find user, please check your username and password"); 
       } 
     } 
     return null; 
    } 

ответ

2

Загружаемые SQL-коннекторы доступны для различных фреймворков и платформ - в этом случае сборки для ссылки в ваш .NET-проект под видом ADO.NET: available from MySql. Может программировать против них, используя любой язык .NET.

Начало в C# с помощью ссылки на пространстве имен MySql:

using MySql.Data.MySqlClient; 

и изменить через свои имена классов ADO.NET из SqlConnection в MySqlConnection и т.д. Google Code examples показывают беглое использование (по аналогии с другими поставщиками ADO.NET), и, конечно, the MySql docs are the best reference.

4

Вы получили его частично правильно, но вам понадобится экземпляр поставщика MySQL, а не SqlConnection. Также вам придется изменить любой SQL, который несовместим с MySQL.

1

Нет, вы должны также изменить эту строку

var command = new SqlCommand(); 

в

var command = new con.CreateCommand(); 

и, конечно, вы должны изменить какие-либо конкретные T-SQL и MSSQL особенности к MySQL. Функция даты и времени, хранимая процедура и привязка параметров (? Вместо @) - это несколько вещей, которые вам нужно внимательно проверить.