gpt4 book ai didi

c# - 通过 ExecuteNonQuery 检查表中的记录是否存在于数据库中

转载 作者:可可西里 更新时间:2023-11-01 03:12:04 24 4
gpt4 key购买 nike

在我的程序中,我需要使用 if 语句检查数据库中的记录是否已存在于表中。使用 c# 我正在尝试通过 sql 连接来执行此操作。因为我假设 ExecuteNonQuery(); 命令返回一个整数值,如果我的假设是真的,我想知道什么值是真的知道表中是否存在某个记录。这是我的代码示例:

using (SqlConnection sqlConnection = dbUtil.GetSqlConnection(dbUtil.GetConnectionStringByName("NonConnectionString")))
{
using (SqlCommand sqlCommand = new SqlCommand("SELECT * from users where user_name like 'Adam' AND password like '123456'", sqlConnection))
{
sqlresult = sqlCommand.ExecuteNonQuery();
}
}

考虑到 sqlresult 之前已经在 main 中初始化为 int sqlresult;所以我想知道,数据库中是否存在这个用户“Adam”。如果他存在,那么我想继续使用“if”语句,例如:

if(sqlresult == 0)
{
MessageBox.Show("Adam exists!");
}

所以我只是不知道它应该返回的整数,我也不确定这是这样做的正确方法。

谢谢。

最佳答案

如果你想检查用户是否存在,你必须更改你的 sql 并使用 COUNTEXISTS:

所以代替

SELECT * from users where user_name like 'Adam' AND password like '123456'

这个

SELECT COUNT(*) from users where user_name like 'Adam' AND password like '123456'

现在您可以使用 ExecuteScalar 检索使用此用户名和密码的用户数:

int userCount = (int) sqlCommand.ExecuteScalar();
if(userCount > 0)
// user exists ....

请注意,您应该使用 sql 参数来防止 sql-injection :

using (SqlCommand sqlCommand = new SqlCommand("SELECT COUNT(*) from users where user_name like @username AND password like @password", sqlConnection))
{
sqlConnection.Open();
sqlCommand.Parameters.AddWithValue("@username", userName);
sqlCommand.Parameters.AddWithValue("@password", passWord);
int userCount = (int) sqlCommand.ExecuteScalar();
...
}

关于c# - 通过 ExecuteNonQuery 检查表中的记录是否存在于数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17903092/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com