首页 >数据库 >mysql教程 >为什么我的 C# MySQL 准备语句失败,如何修复?

为什么我的 C# MySQL 准备语句失败,如何修复?

Patricia Arquette
Patricia Arquette原创
2024-11-28 11:54:11222浏览

Why is my C# MySQL Prepared Statement Failing, and How Can I Fix It?

使用 MySQL 对 C# 中的预准备语句进行故障排除

尝试在使用 MySQL 的 C# 程序中使用预准备语句时遇到错误。虽然将其转换为标准语句产生了所需的结果,但您正在寻求帮助来识别问题。

错误代码:

cmd = new MySqlCommand("SELECT * FROM admin WHERE admin_username='@val1' AND admin_password=PASSWORD('@val2')", MySqlConn.conn);
cmd.Prepare();
cmd.Parameters.AddWithValue("@val1", tboxUserName.Text);
cmd.Parameters.AddWithValue("@val2", tboxPassword.Text);

更正:

  • 添加后使用Prepare参数: 在错误的代码中,命令是在添加参数之前准备好的。正确的方法是先添加参数,然后调用Prepare()。
  • 从查询中删除单引号:查询包含参数占位符周围的单引号(@val1和@val2),这是不正确的。准备好的语句需要不带引号的参数占位符。

更正的代码:

cmd = new MySqlCommand("SELECT * FROM admin WHERE admin_username=@val1 AND admin_password=PASSWORD(@val2)", MySqlConn.conn);
cmd.Parameters.AddWithValue("@val1", tboxUserName.Text);
cmd.Parameters.AddWithValue("@val2", tboxPassword.Text);
cmd.Prepare();

以上是为什么我的 C# MySQL 准备语句失败,如何修复?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn