C# mysql 执行带有参数的Reader 输入字符串的格式不正确

标签 c# asp.net mysql

我正在尝试创建一个登录 aspx 页面。

我在这里做错了什么?

MySqlConnection cn = new MySqlConnection("Server=localhost;Database=securitytest; User=root;Password=sx;");

    cn.Open();
    MySqlCommand cmd = new MySqlCommand("Select * from login where username=@username and password=@password", cn);

    //Add parameters to get the username and password  

    cmd.Parameters.Add("@username", OdbcType.VarChar);
    cmd.Parameters["@username"].Value = this.Login1.UserName;

    cmd.Parameters.Add("@password", OdbcType.VarChar);
    cmd.Parameters["@password"].Value = this.Login1.Password;

    MySqlDataReader dr = default(MySqlDataReader);
    // Initialise a reader to read the rows from the login table.  
    // If row exists, the login is successful  

    dr = cmd.ExecuteReader();

    if (dr.HasRows)
    {
        e.Authenticated = true;
        // Event Authenticate is true  
    }

最佳答案

MySql 数据库提供程序使用 ? 来定位 SQL 中的参数。因此,请使用 ? 而不是 @ 来标记 SQL 查询中的参数:

MySqlCommand cmd = new MySqlCommand("Select * from login where username=?username and password=?password", cn);

cmd.Parameters.Add("?username", OdbcType.VarChar);
cmd.Parameters["?username"].Value = this.Login1.UserName;

...

希望这会有所帮助。

关于C# mysql 执行带有参数的Reader 输入字符串的格式不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8013745/

相关文章:

c# - Unity 记录静态方法 AOP 风格或无接口(interface)

asp.net - 在 Windows Azure 上托管多个项目和服务

mysql - 如何抑制单个 SQL 语句的列标题输出?

c# - datagridview itemsource 已填充但未显示?

c# - Xamarin EditText InputType 密码

javascript - ASP.NET 无法加载 CSS 和 Javascript 文件

c# - 页面渲染和 http 处理程序

php - MySQL : How to set default value for empty row?

c# - 无法加载文件或程序集 'MySql.Data'参数不正确

c# - 无法从 'byte[]' 转换为 'byte*'