如何查询Compact SQL命令返回值

本文关键字:Compact SQL 命令 返回值 查询 何查询 | 更新日期: 2023-09-27 18:07:35

我使用在visual studio上创建的紧凑数据库。只是一个独立的系统,它的数据库完好无损,虽然我被困在这里使用一个选择查询,可以检索一个布尔值,如果用户存在于数据库上,然后返回它的ID和用户名,如果用户条目存在。关于这一点,我可以寻求帮助吗?我是一名学生,正在学习c#使用紧凑数据库。

private void btnLogin_Click(object sender, EventArgs e)
    {
        try
        {
            if (!IsEmpty()) 
            {
                if (!IsLenght()) 
                {
                    using (SqlCeConnection con = new SqlCeConnection("Data Source=" +
                    System.IO.Path.Combine(Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location), "INCdb.sdf"))) 
                    {
                        con.Open();
                        SqlCeCommand cmd = con.CreateCommand();
                        cmd.CommandText = "SELECT * FROM LoginTB Where username=@user1 AND password=@pass1";
                        cmd.Parameters.AddWithValue("@user1", UserTxt.Text.Trim());
                        cmd.Parameters.AddWithValue("@pass1", PassTxt.Text.Trim());
                        cmd.CommandType = CommandType.Text;
                        validlogin = (bool)cmd.ExecuteScalar();
                        con.Close();
                        MessageBox.Show(validlogin.ToString());

                        if (validlogin == true) 
                        {
                            // cmd. return value ID
                            // cmd. return value Username
                            //SysMain Mn = new SysMain();
                            //Mn.ShowDialog();
                            //this.Hide();
                        }
                    }                        
                }
            }
        }
        catch (Exception ex) 
        {
            gbf.msgBox(1, ex.Message.ToString(), "");
        }
    }

如何查询Compact SQL命令返回值

下面的代码可能更好,除非LoginTB的模式有一些特殊的和未声明的东西。

// ...
var validLogin = false;
using (SqlCeConnection con = new SqlCeConnection(
    "Data Source=" +
        System.IO.Path.Combine(
            Path.GetDirectoryName(
                System.Reflection.Assembly.GetEntryAssembly().Location),
    "INCdb.sdf"))) 
{
    con.Open();
    SqlCeCommand cmd = con.CreateCommand();
    cmd.CommandText =
            "SELECT COUNT(*) FROM LoginTB Where username=@user1 AND password=@pass1";
    cmd.Parameters.AddWithValue("@user1", UserTxt.Text.Trim());
    cmd.Parameters.AddWithValue("@pass1", PassTxt.Text.Trim());
    cmd.CommandType = CommandType.Text;
    validlogin = ((int)cmd.ExecuteScalar()) > 0;
}
MessageBox.Show(validlogin.ToString());
// ...
注意COUNT
的使用