c#如何编写代码:如果数据库中的数据与输入的数据相同,请执行此操作

c#如何编写代码:如果数据库中的数据与输入的数据相同,请执行此操作,c#,database,C#,Database,所以我创建了这个命令来从数据库中检索数据,现在的问题是如何编写代码,如果输入的数据与数据库中的数据相同,它将关闭此表单并打开一个新表单 SqlDataAdapter command = new SqlDataAdapter("select * from tblLogin where Gebruikersnaam = @Gebruiker and GeheimeVraag = @GeheimeVraag and Antwoord = @Antwoord", con); DataTa

所以我创建了这个命令来从数据库中检索数据,现在的问题是如何编写代码,如果输入的数据与数据库中的数据相同,它将关闭此表单并打开一个新表单

SqlDataAdapter command = new SqlDataAdapter("select * from tblLogin where Gebruikersnaam = @Gebruiker and GeheimeVraag = @GeheimeVraag and Antwoord = @Antwoord", con);
        DataTable dt = new DataTable();
        command.SelectCommand.Parameters.AddWithValue("@Gebruiker", txtGebruikersnaam.Text);
        command.SelectCommand.Parameters.AddWithValue("@GeheimeVraag", ddlGeheimeVraag.Text);
        command.SelectCommand.Parameters.AddWithValue("@Antwoord", txtAntwoord.Text);
        command.Fill(dt);

        if ()
        {
            this.Hide();
            FormLoginWW2 ss = new FormLoginWW2();
            ss.Show();
        }
        else
        {
            MessageBox.Show("Error");
        }
您可以,并评估:

SqlData

SqlCommand command = new SqlCommand("select 1 from tblLogin where Gebruikersnaam = @Gebruiker and GeheimeVraag = @GeheimeVraag and Antwoord = @Antwoord", con);
        command.SelectCommand.Parameters.AddWithValue("@Gebruiker", txtGebruikersnaam.Text);
        command.SelectCommand.Parameters.AddWithValue("@GeheimeVraag", ddlGeheimeVraag.Text);
        command.SelectCommand.Parameters.AddWithValue("@Antwoord", txtAntwoord.Text);

var value = command.ExecuteScalar();

if (Object.Equals(value, 1))
{
   //Success
}
else
{
   //Failure
}
“1”的值可能会被计算为int,而不是bool,因此如果希望查询中出现bool,可以在查询中强制转换。。。如果不是1,表示没有返回结果,则返回'DBNull.Value'。

您可以,并计算:

SqlData

SqlCommand command = new SqlCommand("select 1 from tblLogin where Gebruikersnaam = @Gebruiker and GeheimeVraag = @GeheimeVraag and Antwoord = @Antwoord", con);
        command.SelectCommand.Parameters.AddWithValue("@Gebruiker", txtGebruikersnaam.Text);
        command.SelectCommand.Parameters.AddWithValue("@GeheimeVraag", ddlGeheimeVraag.Text);
        command.SelectCommand.Parameters.AddWithValue("@Antwoord", txtAntwoord.Text);

var value = command.ExecuteScalar();

if (Object.Equals(value, 1))
{
   //Success
}
else
{
   //Failure
}

“1”的值可能会被计算为int,而不是bool,因此如果希望查询中出现bool,可以在查询中强制转换。。。如果不是1,表示没有返回任何结果,则返回'DBNull.Value'。

我相信您的查询是在db表中查找特定的行,如果它存在,则执行某些操作。你可以在下面做

if(dt!=null)
{
  if(dt.Rows.Count>0)
  {
    //do your code 
  }
}
更新:

一种方法如下所述:

另一种方法是我解释的。您可以将查询更改为返回第一条记录(我假设它始终是一条记录,因为它是一个登录名)


我相信您的查询是在db表中查找特定的行,如果它存在,您可以做些什么。你可以在下面做

if(dt!=null)
{
  if(dt.Rows.Count>0)
  {
    //do your code 
  }
}
更新:

一种方法如下所述:

另一种方法是我解释的。您可以将查询更改为返回第一条记录(我假设它始终是一条记录,因为它是一个登录名)


“如果数据正确”是什么意思?如果输入的数据与数据库中的数据相同,您将如何判断。对这个问题进行了编辑,希望它能更清楚地表达你所说的“如果数据是正确的”是什么意思?如果输入的数据与数据库中的数据相同,您将如何判断。对这个问题进行了编辑,希望它能更清晰,它给了我这个错误编辑:啊,如果在哪里将sqldataadapter更改为just adapter,我需要添加什么名称空间引用?对不起,更改为SQLCommand;您不需要适配器-只需使用命令即可。奇怪的是,它会给我以下错误编辑:啊,如果要将sqldataadapter更改为just adapter,我需要添加什么名称空间引用?抱歉,更改为SQLCommand;你不需要适配器-只需使用命令即可。不,我想检查我放在文本框中的数据是否与数据库中的数据相同。就像在登录系统中一样,谢谢你花时间回答我的问题,很遗憾,我会选择上面的一个作为我的最佳答案,因为我认为var value=command.ExecuteScalar();对将来的工作非常有用。不过,在使用datatable时,我肯定也会使用您的方法。我希望你不要因为我没有选择你作为最佳答案而生气:/再次感谢你的回答!别担心。我同意。我个人认为这是更好的方法,我只是想添加一个替代方案。嘿,你能帮我跟进这个问题吗?你似乎是个很好的程序员。我自己编写了我需要的大部分程序,但我只是不知道如何再做一件事。一旦我完成了等待时间,我将在另一条评论中发布一个问题的链接。我知道这样请求你的帮助听起来有点粗鲁,但我想既然你已经了解我的程序,我不妨试试。我希望你不介意这样做:/当然,张贴链接。当我有空闲时间的时候我会看一看。不,我想检查我放在文本框中的数据是否与数据库中的数据相同。就像在登录系统中一样,谢谢你花时间回答我的问题,很遗憾,我会选择上面的一个作为我的最佳答案,因为我认为var value=command.ExecuteScalar();对将来的工作非常有用。不过,在使用datatable时,我肯定也会使用您的方法。我希望你不要因为我没有选择你作为最佳答案而生气:/再次感谢你的回答!别担心。我同意。我个人认为这是更好的方法,我只是想添加一个替代方案。嘿,你能帮我跟进这个问题吗?你似乎是个很好的程序员。我自己编写了我需要的大部分程序,但我只是不知道如何再做一件事。一旦我完成了等待时间,我将在另一条评论中发布一个问题的链接。我知道这样请求你的帮助听起来有点粗鲁,但我想既然你已经了解我的程序,我不妨试试。我希望你不介意这样做:/当然,张贴链接。我有空的时候去看看