已有打开的与此命令相关联的 DataReader,必须首先将它关闭。

 我来答
OfferComing留学
2022-11-23 · OfferComing一站式留学攻略
OfferComing留学
向TA提问
展开全部

主要原因是 DataReader 在打开使用时,一个 SqlConnection 只允许打开一个 DataReader,在开启另一个 DataReader 时,必须将前面一个先 Close 掉。 

1、首先输入代码:

private static string strConn = ConfigurationManager.ConnectionStrings["SQLLSB2008"].ConnectionString;

    private static SqlConnection myConn = null;

private static SqlDataAdapter myAdapter = new SqlDataAdapter();

    private static SqlCommand myCmd = new SqlCommand();
    private static DataTable myTable = new DataTable();

2、然后输入下方的代码:

public static DataTable returnDataTable(string mySql, SqlParameter[] parameters)

{
myConn = new SqlConnection(strConn);

        using (myCmd = new SqlCommand(mySql, myConn))
{

            try

            {
myCmd.Parameters.AddRange(parameters);

                myAdapter = new SqlDataAdapter(myCmd);

                myTable.Clear();

                myAdapter.Fill(myTable);

}

3、然后输入下方的代码,就可以解决问题了:

   catch

            {

connClose();

}

            finally

            {

connClose();

}

}

return myTable;

}

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式