gpt4 book ai didi

c# - 没有数据发送到 MySQL 数据库

转载 作者:行者123 更新时间:2023-11-29 12:27:24 25 4
gpt4 key购买 nike

我是在 C# 中使用 MySQL 的新手,我不明白这里出了什么问题。我的代码能够连接到我的数据库,但即使 3 个文本框中有文本,也不会发送任何数据。

public static void testSendData ()
{
MainWindow form = new MainWindow();
string input_username = form.textUsername.Text;
string input_password = form.textPassword.Text;
string input_email = form.textEmail.Text;

MySqlConnectionStringBuilder builder = new MySqlConnectionStringBuilder();
builder.Server = "localhost";
builder.UserID = "root";
builder.Password = "root";
builder.Database = "authentication";
MySqlConnection connection = new MySqlConnection(builder.ToString());
connection.Open();
string newuser_sql = "INSERT INTO `authentication`.`account` (`username`, `sha_pass_hash`, `email`) VALUES ('@username', '@pass', '@email');";
MySqlCommand newuser = new MySqlCommand(newuser_sql, connection);
newuser.CommandText = newuser_sql;
newuser.Parameters.AddWithValue("@username", input_username);
newuser.Parameters.AddWithValue("@pass", input_password);
newuser.Parameters.AddWithValue("@email", input_email);
newuser.ExecuteNonQuery();
MessageBox.Show("Worked.");
}

编辑:我更新了“newuser_sql”字符串,它现在将发送数据,但它会将文字 @username、@pass、@email 发送到数据库。

最佳答案

MySQL .NET 提供程序命令参数格式与典型的不同。

试试这个:

string newuser_sql = "INSERT INTO `authentication`.`account` (`username`, `sha_pass_hash`, `email`) VALUES (?username, ?pass, ?email);";
//..
newuser.Parameters.AddWithValue("?username", input_username);
newuser.Parameters.AddWithValue("?pass", input_password);
newuser.Parameters.AddWithValue("?email", input_email);

如果此结果为空,则调试 input_usernameinput_passwordinput_email 实际上包含非空值

更新

事实证明,现在它实际上也应该与 @ 一起使用(只是参数周围不带引号),因此请检查您是否确实传递了任何数据(设置断点并调试添加参数时input_username的值等)

关于c# - 没有数据发送到 MySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28104654/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com