如何检查用户输入是否存储在sqlite数据库中

时间:2019-01-08 19:53:09

标签: c# database sqlite

到目前为止,我正在制作一个允许用户注册和登录的C#应用​​程序,我已经设法完成了注册部分,但是我对登录部分感到困惑

我有一个称为ExecuteQuery的方法,该方法通过存储用户信息的sqlite文件进行查询,但我不确定如何检查数据库中存储的数据是否与用户输入的用户名和密码匹配

这是检查正确的用户名和密码的部分,这是我遇到的问题

        if (File.Exists("Users.sqlite"))
        {

            string txtQuery = "select * from UserInfo where UserName ='"+ username + "' and Password  ='" + password + "'";
            mainClass.ExecuteQuery(txtQuery);

        } 

这是我通过数据库查询的方法

public void ExecuteQuery(string txtQuery)
    {
        SetConnection();
        sql_con.Open();
        sql_cmd = sql_con.CreateCommand();
        sql_cmd.CommandText = txtQuery;
        sql_cmd.ExecuteNonQuery();
        sql_con.Close();
    }

问题是我不确定如何检查用户输入和存储在sqlite数据库中的用户详细信息是否匹配。我的sqlite数据库的名称是Users,表的名称是UserInfo

1 个答案:

答案 0 :(得分:-1)

您执行非查询,执行不返回任何数据的非查询,它只是执行查询,您在更新,插入,删除,ETC等中使用它。

要从查询返回结果,请使用ExecuteQuery而不是ExecuteNonQuery。并将结果保存到变量中,然后将其返回。

示例:

public string ExecuteQuery(string txtQuery)
{
    SetConnection();
    sql_con.Open();
    var sql_cmd = sql_con.CreateCommand();
    sql_cmd.CommandText = txtQuery;
    var x = sql_cmd.ExecuteQuery();
    sql_con.Close();
return x;
}

并在主页上:

 var result = mainClass.ExecuteQuery(txtQuery);

结果将包括您的查询,在您的情况下将是用户信息(如果存在)。

请不要忘记将其标记为答案并投票。希望我能帮助您。