我正在尝试在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();
}
}
}
我目前有一个选择,但我不知道如何显示它,我能够连接到数据库。
答案 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执行任何操作。