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();
}
}
}
c# sqlDataReader 封装调用问题(调用出错 错误提示如图)
答案:2 悬赏:80 手机版
解决时间 2021-07-19 13:08
- 提问者网友:饥饿走向夜
- 2021-07-18 22:42
最佳答案
- 五星知识达人网友:怙棘
- 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;
}
}
上面的代码是微软的数据库操作类中此部分内容的写法 您可以参考 您的问题我感觉应该是你外部程序的问题 看您此处的代码 暂时还没发现问题
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯