如何读取和比较SQL Server Express数据库中的数据

时间:2014-01-23 15:16:00

标签: c# sql sql-server sql-server-express

我正在尝试在C#中创建一个select语句来检查插入到文本框(userName)中的值是否在现有的SQL数据库中。我有一个名为Employee的数据库,其中包含一个名为EVUSERS的表,它有一个名为UName的列。

在我的代码中,我有一个方法,它从名为UserBox的文本框中获取值。我想知道是否存在一个临时表,其中存储了select,我可以将文本框值与之比较。

以下是代码:

private void CheckLoginExist()
{
            String userName = UserBox.Text;

            string connectionString = @"Data Source=.\SQLEXPRESS;Database=Employee;Integrated Security=true";
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                using (SqlCommand command = connection.CreateCommand())
                {

                    command.CommandText = "SELECT UName FROM EVUSERS WHERE UName = @UName";
                    command.Parameters.AddWithValue("@UName", userName);
                    connection.Open();
                    command.ExecuteNonQuery();
                    connection.Close();
                }
            }
}

我目前有一个选择,但我不知道如何显示它,我能够连接到数据库。

2 个答案:

答案 0 :(得分:1)

您需要ExecuteScalar,而不是ExecuteNonQuery

...
connection.Open();
var name = command.ExecuteScaclar().ToString();
connection.Close();

if (name != null) {
  MessageBox.Show("This name already exists");
  return;
}

答案 1 :(得分:0)

private void CheckLoginExist()
{
    DataTable dt = new DataTable();
    String userName = UserBox.Text;

   string connectionString = @"Data Source=.\SQLEXPRESS;Database=Employee;Integrated Security=true";
   using (SqlConnection connection = new SqlConnection(connectionString))
   {
         SqlDataAdapter da = new SqlDataAdapter("SELECT UName FROM EVUSERS WHERE UName = '" + userName  + "'", _conn);                 
         da.Fill(dt); 
   }
}

现在,您可以使用此DataTable执行任何操作。