我试图使用参数化查询与数据阅读器,当我得到此错误消息“无效尝试读取时,没有数据存在。”错误 - “无数据存在时无效尝试读取”。虽然使用SQLDataReader即使数据存在
但数据是有读者!
以下是代码执行此任务的
using (ConnectionManager connectionManager = new ConnectionManager())
{
string query = @"SELECT * FROM LoginTab WHERE [email protected] " +
"AND [email protected]";
List<SqlParameter> sqlParameterCollection = new List<SqlParameter>();
sqlParameterCollection.Add(new SqlParameter("@username", SqlDbType.NVarChar) { Value = userName });
sqlParameterCollection.Add(new SqlParameter("@password", SqlDbType.NVarChar) { Value = password });
SqlDataReader sqlDataReader = connectionManager.ExecuteReader(query, CommandType.Text, sqlParameterCollection);
String roles = sqlDataReader[0].ToString();
return roles;
}
的ExecuteReader函数在另一个类中定义的线。
public SqlDataReader ExecuteReader(String strcmd, CommandType type, List<SqlParameter> Parametercollections)
{
connnection = new SqlConnection(Connnectionstring);
command = new SqlCommand(strcmd, connnection);
command.CommandType = type;
foreach (SqlParameter paras in Parametercollections)
{
command.Parameters.Add(paras);
}
try
{
connnection.Open();
reader = command.ExecuteReader();
}
catch (SqlException E)
{
}
finally
{
}
return reader;
}
这里有什么问题?
读者定义在哪里?这可能是一个范围问题,或者读者可能会在您尝试阅读时关闭它。 – Tim
不是解决方案,但应该删除try/catch/finally,以便了解任何异常。 –