我正在开发一个新的项目,为医学实验室使用Visual Studio C# WinForms的用户交互和MYSQL的数据库。我成功地建立后,它成功地运行在我的windows机器。但问题是,当我安装我的项目在另一个windows机器上,UI的前端运行良好,但数据库向我抛出错误。错误为使用方法“caching_”对用户“root”的主机“localhost”进行身份验证“sha2_password”失败,并显示消息:未知的数据库'登录'。我认为错误是我需要在我的项目中添加MYSQL引用。但我绝对不知道如何做到这一点。我真的很抱歉,所有因为我在C#和我的英语noob。并从字面上感谢所有。
public partial class registration : Form
{
string connectionstring = "server = localhost; user id = root; database = login; password =
qwerty;";
MySqlConnection connection = new MySqlConnection(connectionstring);
MySqlCommand cmd;
connection.Open();
try
{
cmd = connection.CreateCommand();
cmd.CommandText = "ALTER TABLE register ADD UNIQUE INDEX(rgstrid);";
cmd.CommandText = "INSERT IGNORE INTO register(username, password,confirm) VALUES(@username,@password,@confirm)";
cmd.Parameters.Add("@username", MySqlDbType.VarChar).Value = rgstrusrnmtxtbx.Text;
cmd.Parameters.Add("@password", MySqlDbType.VarChar).Value = rgstrpswdtxtbx.Text;
cmd.Parameters.Add("@confirm", MySqlDbType.VarChar).Value = rgstrcnfrmtxtbx.Text;
DataTable table = new DataTable();
MySqlDataAdapter adapter = new MySqlDataAdapter();
adapter.SelectCommand = cmd;
adapter.Fill(table);
if (cmd.ExecuteNonQuery() == 1)
{
MessageBox.Show("Your Account resgistred Successfully", "information", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
MessageBox.Show("Account saved Successfully","Success",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
catch (Exception)
{
throw;
}
finally
{
if (connection.State == ConnectionState.Open)
{
connection.Close();
}
}
}
1条答案
按热度按时间wbgh16ku1#
您可能需要包含一个库引用来与MySql通信,例如MySql.Data包,将其添加为nuget引用可以确保所需文件与其余应用程序文件一起安装。
你的安装程序还需要安装一些软件。如果你运行的是本地数据库,那么数据库引擎本身,还有ado.net驱动程序的.net connector。
至少我们是这样做的。你可以根据你访问数据库的方式来避免一些组件。
安装数据库时,应指定root口令。例如,为MySQLInstallerConsole.exe程序提供
rootpasswd=qwerty
参数。您的安装脚本还需要设置数据库,即运行sql文件创建任何表并填充数据,或者复制数据库文件本身,或者运行某个程序创建表。