C# 如何在ASP.net MVC中获取数据
我正在尝试使用SQL查询获取IsAdmin值(此查询返回1行或0)。但是我得到了这个错误{“无效阅读暂时没有任何数据存在。”} 这是我的密码C# 如何在ASP.net MVC中获取数据,c#,database,asp.net-mvc,C#,Database,Asp.net Mvc,我正在尝试使用SQL查询获取IsAdmin值(此查询返回1行或0)。但是我得到了这个错误{“无效阅读暂时没有任何数据存在。”} 这是我的密码 public static bool Login (string iduser, string password, bool IsAdmin) { bool auth = false; string query = string.Format("Select IsAdmin from [user] w
public static bool Login (string iduser, string password, bool IsAdmin)
{
bool auth = false;
string query = string.Format("Select IsAdmin from [user] where iduser = '{0}' AND mdp = '{1}' ;", iduser, password);
SqlCommand cmd = new SqlCommand(query, con);
con.Open();
SqlDataReader re = cmd.ExecuteReader();
auth = re.HasRows;
if (auth) { IsAdmin = re.GetBoolean(0); } // the error is on this line (this line will alow me to get IsAdmin Value If the user exist)
con.Close();
return auth;
}
你对恐怖分子很开放。如果你不使用参数化查询,你的网站在上线的那一刻就会被黑客攻击
像这样:
public static bool IsAdmin(string iduser, string password)
{
using (var conn = new SqlConnection(ConnectionString))
using (var cmd = conn.CreateCommand())
{
conn.Open();
cmd.CommandText = @"
SELECT IsAdmin
FROM [user]
WHERE iduser = @iduser AND mdp = @mdp;
";
cmd.Parameters.AddWithValue("@iduser", iduser);
cmd.Parameters.AddWithValue("@mdp", password);
using (var reader = cmd.ExecuteReader())
{
return reader.Read() && reader.GetBoolean(reader.GetOrdinal("IsAdmin"));
}
}
}
你对恐怖分子很开放。如果你不使用参数化查询,你的网站在上线的那一刻就会被黑客攻击
像这样:
public static bool IsAdmin(string iduser, string password)
{
using (var conn = new SqlConnection(ConnectionString))
using (var cmd = conn.CreateCommand())
{
conn.Open();
cmd.CommandText = @"
SELECT IsAdmin
FROM [user]
WHERE iduser = @iduser AND mdp = @mdp;
";
cmd.Parameters.AddWithValue("@iduser", iduser);
cmd.Parameters.AddWithValue("@mdp", password);
using (var reader = cmd.ExecuteReader())
{
return reader.Read() && reader.GetBoolean(reader.GetOrdinal("IsAdmin"));
}
}
}
你需要打电话
re.Read();
在尝试访问数据之前,将读取器移动到第一条记录re.HasRows
不会导致读卡器移动到第一条记录
另外,一定要使用参数化查询。您需要调用
re.Read();
在尝试访问数据之前,将读取器移动到第一条记录re.HasRows
不会导致读卡器移动到第一条记录
另外,一定要使用参数化查询。可能有人使用SQL注入攻击了您的网站并删除了所有用户?此外,SqlDataReader是IDisposable的。这并不是对您的问题的回答,但您进行SQL查询的方式容易受到SQL注入攻击。你应该总是使用参数化查询。哦,这让我渴望输入像
”这样的密码;删除表[用户]--代码>可能有人使用SQL注入攻击了您的站点并删除了所有用户?此外,SqlDataReader是IDisposable的。这并不是对您的问题的回答,但您进行SQL查询的方式容易受到SQL注入攻击。你应该总是使用参数化查询。哦,这让我渴望输入像”这样的密码;删除表[用户]--代码>