如何查询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(), "");
}
}
下面的代码可能更好,除非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