gpt4 book ai didi

c# - 检查数据库中是否存在记录

转载 作者:可可西里 更新时间:2023-11-01 08:37:08 26 4
gpt4 key购买 nike

我正在使用这些代码行来检查记录是否存在。

SqlCommand check_User_Name = new SqlCommand("SELECT * FROM Table WHERE ([user] = '" + txtBox_UserName.Text + "') ", conn);

int UserExist = (int)check_User_Name.ExecuteScalar();

但是我得到一个错误:

Object reference not set to an instance of an object.

我想做的事:

if (UserExist > 0)
// Update record

else

// Insert record

最佳答案

ExecuteScalar返回第一行的第一列。其他列或行将被忽略。看起来第一行的第一列是 null,这就是你得到 NullReferenceException 的原因当您尝试使用 ExecuteScalar 方法时。

来自 MSDN ;

Return Value

The first column of the first row in the result set, or a null reference if the result set is empty.

您可能需要在语句中使用 COUNT 而不是返回受影响的行数...

使用 parameterized queries 始终是一个好习惯。它可以防止 SQL Injection 攻击。

Table 是一个 reserved keyword在 T-SQL 中。您应该将它与方括号一起使用,例如 [Table]

作为最后的建议,使用 using statement用于处理您的 SqlConnectionSqlCommand:

SqlCommand check_User_Name = new SqlCommand("SELECT COUNT(*) FROM [Table] WHERE ([user] = @user)" , conn);
check_User_Name.Parameters.AddWithValue("@user", txtBox_UserName.Text);
int UserExist = (int)check_User_Name.ExecuteScalar();

if(UserExist > 0)
{
//Username exist
}
else
{
//Username doesn't exist.
}

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

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