gpt4 book ai didi

c# - SqlConnection 异常 "Invalid column name ' False'

转载 作者:太空狗 更新时间:2023-10-29 23:09:39 26 4
gpt4 key购买 nike

我在声明中遇到异常 Invalid column name 'False'

reader = cmd.ExecuteReader(CommandBehavior.SingleRow);

我知道这可能与 SQL 的 bool 类型是一个“位”有关,它没有将 false 转换为 0。您如何缓解这种情况,或者这是这里的问题?

    public override bool ValidateUser(string username, string password)
{
bool isValid = false;

SqlConnection conn = new SqlConnection(connectionString);
SqlCommand cmd = new SqlCommand("SELECT Password, IsApproved FROM Users" +
" WHERE Email = @Email AND ApplicationName = @ApplicationName AND IsLockedOut = False", conn);

cmd.Parameters.Add("@Email", SqlDbType.NVarChar, 128).Value = username;
cmd.Parameters.Add("@ApplicationName", SqlDbType.NVarChar, 255).Value = m_ApplicationName;

SqlDataReader reader = null;
bool isApproved = true;
string pwd = "";

try
{
conn.Open();

reader = cmd.ExecuteReader(CommandBehavior.SingleRow);

if (reader.HasRows)
{
reader.Read();
pwd = reader.GetString(0);
isApproved = reader.GetBoolean(1);
}
else
{
return false;
}

reader.Close();

if (CheckPassword(password, pwd))
{
if (isApproved)
{
isValid = true;

SqlCommand updateCmd = new SqlCommand("UPDATE Users SET LastLoginDate = @LastLoginDate" +
" WHERE Email = @Email AND ApplicationName = @ApplicationName", conn);

updateCmd.Parameters.Add("@LastLoginDate", SqlDbType.DateTime).Value = DateTime.Now;
updateCmd.Parameters.Add("@Email", SqlDbType.NVarChar, 255).Value = username;
updateCmd.Parameters.Add("@ApplicationName", SqlDbType.NVarChar, 255).Value = m_ApplicationName;

updateCmd.ExecuteNonQuery();
}
}
else
{
conn.Close();

UpdateFailureCount(username, "password");
}
}

最佳答案

使用 IsLockedOut =0 来检查错误。

IsLockedOut 是一个位数据类型的字段,存储 0 表示假,1 表示真。

在查询中也是如此/

如果 IsLockedOut 是 varchar 字段,则在比较字符串比较时使用 IsLockedOut='False'

关于c# - SqlConnection 异常 "Invalid column name ' False',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10868594/

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