永发信息网

c# sqlDataReader 封装调用问题(调用出错 错误提示如图)

答案:2  悬赏:80  手机版
解决时间 2021-07-19 13:08
  • 提问者网友:饥饿走向夜
  • 2021-07-18 22:42
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;
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
return null;
}
finally
{
DBHelper.connection.Close();
}
}
}
最佳答案
  • 五星知识达人网友:怙棘
  • 2021-07-18 23:42

SqlDataReader是顺序前进的只读的而且必须是连线的,你的public SqlDataReader getDataReader(string sql)这个方法已经断开了连接,所以就没有数据


要断开取得数据,你可以把数据取得放到dataset中

全部回答
  • 1楼网友:摆渡翁
  • 2021-07-19 00:07
/// <summary> /// 执行查询语句,返回SqlDataReader ( 注意:调用该方法后,一定要对SqlDataReader进行Close ) /// </summary> /// <param name="strSQL">查询语句</param> /// <returns>SqlDataReader</returns> public static SqlDataReader ExecuteReader(string strSQL) { SqlConnection connection = new SqlConnection(connectionString); SqlCommand cmd = new SqlCommand(strSQL, connection); try { connection.Open(); SqlDataReader myReader = cmd.ExecuteReader(CommandBehavior.CloseConnection); return myReader; } catch (System.Data.SqlClient.SqlException e) { throw e; } } 上面的代码是微软的数据库操作类中此部分内容的写法 您可以参考 您的问题我感觉应该是你外部程序的问题 看您此处的代码 暂时还没发现问题
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯