【发布时间】:2014-05-06 04:35:57
【问题描述】:
请你帮我解释为什么我的选择命令不选择任何数据。我尝试将选择从名称更改为 ID,它可以工作,但我需要此选择适用于名称选择,而不是仅适用于 ID。
数据库数据:
id user password level
1 Rad3k ..... 0
选择脚本:
public bool loginVerification(string name, string password)
{
test = name;
bool access = false;
string checkLogin, checkPassword;
int level;
commandS = new SqlCommand("SELECT * FROM dbo.users WHERE user like @name", conn);
try
{
conn.Open();
commandS.Parameters.Clear();
// Parameters
SqlParameter nameParam = new SqlParameter("@name", SqlDbType.VarChar, 30);
nameParam.Value = name;
commandS.Parameters.Add(nameParam);
commandS.Prepare();
SqlDataReader reader = commandS.ExecuteReader();
while (reader.Read())
{
for (int i = 0; i < reader.FieldCount; i++)
if (reader.IsDBNull(i))
return access = false;
checkLogin = reader.GetString(1);
checkPassword = reader.GetString(2);
level = reader.GetInt32(3);
if (name == checkLogin && hashPassword.ValidatePassword(password, checkPassword) == true)
access = true;
}
return access;
}
finally
{
conn.Close();
}
}
如果我使用此选择,它会起作用:
commandS = new SqlCommand("SELECT * FROM dbo.users WHERE id = 1", conn);
但是当我使用它时它不起作用:
commandS = new SqlCommand("SELECT * FROM dbo.users WHERE user like @name", conn);
I try use this without parameter, but it dont work too.
commandS = new SqlCommand("SELECT * FROM dbo.users WHERE user like 'Rad3k'", conn);
commandS = new SqlCommand("SELECT * FROM dbo.users WHERE user like '%Rad3k%'", conn);
commandS = new SqlCommand("SELECT * FROM dbo.users WHERE user like 'Rad3k%'", conn);
commandS = new SqlCommand("SELECT * FROM dbo.users WHERE user = 'Rad3k'", conn);
// and same with paramter still dont work
感谢所有可以帮助我的人。
【问题讨论】:
标签: c# asp.net sql-server database select