C#SqlDatereader问题
来源:百度知道 编辑:UC知道 时间:2024/06/05 23:46:14
我在一个类中写了Sqldatareader 方法在调用的时候出错 错误见图
class DBSelectHelper
{
//datareader查询方法
public SqlDataReader getDataReader(string sql)
{
SqlCommand command = new SqlCommand(sql, DBHelper.connection);
DBHelper.connection.Open();
try
{
SqlDataReader reader = command.ExecuteReader();
return reader;
reader.Close();//这里警告是警告检测到无法访问的代码
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
return null;
}
finally
{
DBHelper.connection.Close();
}
}
}
class DBSelectHelper
{
//datareader查询方法
public SqlDataReader getDataReader(string sql)
{
SqlCommand command = new SqlCommand(sql, DBHelper.connection);
DBHelper.connection.Open();
try
{
SqlDataReader reader = command.ExecuteReader();
return reader;
reader.Close();//这里警告是警告检测到无法访问的代码
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
return null;
}
finally
{
DBHelper.connection.Close();
}
}
}
去掉reader.close,你在这并没有用sqldatareader做任何事
reader.Close();//这里警告是警告检测到无法访问的代码
这里去掉就行了。你都return了,后面的代码不会再运行了。
而是在调用这个方法的地方
using (SqlDataReader rdTable = getDataReader(sql)) {
//do something;
rdTable.Close();
}
这样就行了。
SqlDataReader reader = command.ExecuteReader();
return reader;
reader.Close();//这里警告是警告检测到无法访问的代码
应该是这里..你己经return reader了.
一个方法己经return 了他就会停止运行下面的代码所以检测到无法访问的代码
把关闭写到finnaly里面试试