项目的基础数据库已从sql 2005更改为MySql 5.1 该代码具有类似于下面的方法。我假设这只是将'con'变量SqlConnection切换到MYSql特定连接的情况。有没有人有这方面的经验?我从来没有碰过mySql数据库。任何帮助非常感谢。
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;
}
答案 0 :(得分:4)
你得到了部分正确,但你需要一个MySQL Provider实例,而不是SqlConnection。此外,您还必须更改任何与MySQL不兼容的SQL。
答案 1 :(得分:2)
可下载的SQL连接器可用于各种框架和平台 - 在这种情况下,以ADO.NET为幌子引用.NET项目的程序集为available from MySql。可以使用任何.NET语言对它们进行编程。
通过引用MySql名称空间来启动C#:
using MySql.Data.MySqlClient;
并将您的ADO.NET类名从SqlConnection
更改为MySqlConnection
等。Google Code examples显示粗略用法(类似于其他ADO.NET提供程序),当然还有{{ 3}}
答案 2 :(得分:1)
不,你还必须改变这一行
var command = new SqlCommand();
到
var command = new con.CreateCommand();
当然,您必须将任何特定的T-SQL和MSSQL功能更改为MySQL。日期和时间函数,存储过程和参数绑定(?而不是@)是您需要仔细检查的一些事项。