【问题标题】:Syntax error - You have an error in your SQL syntax; check the right syntax to use near '****' at line 1语法错误 - 您的 SQL 语法有错误;检查在第 1 行的 '****' 附近使用的正确语法
【发布时间】:2019-12-08 02:18:24
【问题描述】:

我正在用 C# 创建一个登录表单。当我运行它时,我在MySqlDataReader dr = com.ExecuteReader(); 得到一个错误@

错误:(MySql.Data.MySqlClient.MySqlException:'您的 SQL 语法有错误;请检查在第 1 行的“登录”附近使用的正确语法)。

我找不到 SQL 语法有什么问题。有人可以帮帮我吗?

代码:

private void BtLogin_Click(object sender, RoutedEventArgs e)
        {
            MySqlConnection con = new MySqlConnection();
            MySqlCommand com = new MySqlCommand();
            con.ConnectionString = @"server=;user id=;persistsecurityinfo=True;database=myadministration;password=";

            con.Open();
            com.Connection = con;
            com.CommandText = "select * login";
            MySqlDataReader dr = com.ExecuteReader();
            if (dr.Read())
            {
                if (TbUsername.Text.Equals(dr["user"].ToString()) && PbPswd.Password.Equals(dr["paswd"].ToString()))
                {
                    MessageBox.Show("Welcome!");
                }

            }
            con.Close();
        } 

【问题讨论】:

  • 这不是如何进行登录检查。存储原始密码非常糟糕,甚至不应该用于测试/学习/概念验证代码。即使加密也不够好。相反,您必须使用加密(而不是 md5)哈希。当有人尝试登录时,您对尝试的密码使用相同的哈希过程,然后比较哈希。

标签: c# mysql database


【解决方案1】:

如错误所述,您的查询中有语法错误。查询数据库对象时需要使用from关键字。

将您的查询转换为select * from login 即可。

【讨论】:

  • 太棒了。请投票并接受作为答案,以帮助将来的用户:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多