C# &引用;已经有一个打开的DataReader与此命令关联,必须先关闭该命令";
我在这里的代码返回错误“已经有一个与此命令关联的打开的DataReader,必须先关闭它。”并且我已经在我的web.config上添加了代码“MultipleActiveResultSets=true”C# &引用;已经有一个打开的DataReader与此命令关联,必须先关闭该命令";,c#,sql,asp.net,sql-server,C#,Sql,Asp.net,Sql Server,我在这里的代码返回错误“已经有一个与此命令关联的打开的DataReader,必须先关闭它。”并且我已经在我的web.config上添加了代码“MultipleActiveResultSets=true” ReportViewer1.Visible = true; ReportViewer1.ProcessingMode = ProcessingMode.Local; var sqlConnection = new SQLConnectionStr
ReportViewer1.Visible = true;
ReportViewer1.ProcessingMode = ProcessingMode.Local;
var sqlConnection = new SQLConnectionStrings();
var conReport = new SqlConnection(sqlConnection.strConn);
var cmdReport = new SqlCommand();
var myDataAdapter = new SqlDataAdapter();
myDataAdapter.SelectCommand = cmdReport;
SqlDataReader drReport;
DataSet dsReport = new DataSet();
//PerfLogDataSet();
cmdReport.CommandType = CommandType.Text;
cmdReport.Connection = conReport;
conReport.Open();
cmdReport.CommandText = baseQuery;
drReport = cmdReport.ExecuteReader();
myDataAdapter.Fill(dsReport); //where the error occurs
dsReport.Tables[0].Load(drReport);
drReport.Close();
conReport.Close();
您正试图用相同的
SqlCommand
同时使用SqlDataAdapter
和SqlDataReader
ReportViewer1.Visible = true;
ReportViewer1.ProcessingMode = ProcessingMode.Local;
var sqlConnection = new SQLConnectionStrings();
var conReport = new SqlConnection(sqlConnection.strConn);
var cmdReport = new SqlCommand();
var myDataAdapter = new SqlDataAdapter();
myDataAdapter.SelectCommand = cmdReport;
SqlDataReader drReport;
DataSet dsReport = new DataSet();
//PerfLogDataSet();
cmdReport.CommandType = CommandType.Text;
cmdReport.Connection = conReport;
conReport.Open();
cmdReport.CommandText = baseQuery;
drReport = cmdReport.ExecuteReader();
myDataAdapter.Fill(dsReport); //where the error occurs
dsReport.Tables[0].Load(drReport);
drReport.Close();
conReport.Close();
SqlDataAdapter
将结果集加载到DataSet
或DataTable
中SqlDataReader
用于在结果集上一次循环一条记录,记录集样式。它们是两种不同的方法,用于访问具有两种不同意图的数据,两者都使用是没有意义的
ReportViewer1.Visible = true;
ReportViewer1.ProcessingMode = ProcessingMode.Local;
var sqlConnection = new SQLConnectionStrings();
var conReport = new SqlConnection(sqlConnection.strConn);
var cmdReport = new SqlCommand();
var myDataAdapter = new SqlDataAdapter();
myDataAdapter.SelectCommand = cmdReport;
SqlDataReader drReport;
DataSet dsReport = new DataSet();
//PerfLogDataSet();
cmdReport.CommandType = CommandType.Text;
cmdReport.Connection = conReport;
conReport.Open();
cmdReport.CommandText = baseQuery;
drReport = cmdReport.ExecuteReader();
myDataAdapter.Fill(dsReport); //where the error occurs
dsReport.Tables[0].Load(drReport);
drReport.Close();
conReport.Close();
如果您试图加载dsReport
,请删除
ReportViewer1.Visible = true;
ReportViewer1.ProcessingMode = ProcessingMode.Local;
var sqlConnection = new SQLConnectionStrings();
var conReport = new SqlConnection(sqlConnection.strConn);
var cmdReport = new SqlCommand();
var myDataAdapter = new SqlDataAdapter();
myDataAdapter.SelectCommand = cmdReport;
SqlDataReader drReport;
DataSet dsReport = new DataSet();
//PerfLogDataSet();
cmdReport.CommandType = CommandType.Text;
cmdReport.Connection = conReport;
conReport.Open();
cmdReport.CommandText = baseQuery;
drReport = cmdReport.ExecuteReader();
myDataAdapter.Fill(dsReport); //where the error occurs
dsReport.Tables[0].Load(drReport);
drReport.Close();
conReport.Close();
SqlDataReader drReport;
drReport = cmdReport.ExecuteReader();
dsReport.Tables[0].Load(drReport);
drReport.Close();
因为您已经使用适配器加载了它
ReportViewer1.Visible = true;
ReportViewer1.ProcessingMode = ProcessingMode.Local;
var sqlConnection = new SQLConnectionStrings();
var conReport = new SqlConnection(sqlConnection.strConn);
var cmdReport = new SqlCommand();
var myDataAdapter = new SqlDataAdapter();
myDataAdapter.SelectCommand = cmdReport;
SqlDataReader drReport;
DataSet dsReport = new DataSet();
//PerfLogDataSet();
cmdReport.CommandType = CommandType.Text;
cmdReport.Connection = conReport;
conReport.Open();
cmdReport.CommandText = baseQuery;
drReport = cmdReport.ExecuteReader();
myDataAdapter.Fill(dsReport); //where the error occurs
dsReport.Tables[0].Load(drReport);
drReport.Close();
conReport.Close();
myDataAdapter.Fill(dsReport);
如果要填充数据集,请尝试此代码
ReportViewer1.Visible = true;
ReportViewer1.ProcessingMode = ProcessingMode.Local;
var sqlConnection = new SQLConnectionStrings();
var conReport = new SqlConnection(sqlConnection.strConn);
var cmdReport = new SqlCommand();
var myDataAdapter = new SqlDataAdapter();
myDataAdapter.SelectCommand = cmdReport;
SqlDataReader drReport;
DataSet dsReport = new DataSet();
//PerfLogDataSet();
cmdReport.CommandType = CommandType.Text;
cmdReport.Connection = conReport;
conReport.Open();
cmdReport.CommandText = baseQuery;
drReport = cmdReport.ExecuteReader();
myDataAdapter.Fill(dsReport); //where the error occurs
dsReport.Tables[0].Load(drReport);
drReport.Close();
conReport.Close();
ReportViewer1.Visible = true;
ReportViewer1.ProcessingMode = ProcessingMode.Local;
var sqlConnection = new SQLConnectionStrings();
var conReport = new SqlConnection(sqlConnection.strConn);
var cmdReport = new SqlCommand(baseQuery);
var myDataAdapter = new SqlDataAdapter(cmdReport,sqlConnection );
DataSet dsReport = new DataSet();
conReport.Open();
myDataAdapter.Fill(dsReport);
conReport.Close();
但如果你还想要什么,请描述它,更多;) 此行的目的是什么
dsReport.Tables[0]。加载(drReport)代码>您已经用填充加载了该表。以前的执行者也是这样。
ReportViewer1.Visible = true;
ReportViewer1.ProcessingMode = ProcessingMode.Local;
var sqlConnection = new SQLConnectionStrings();
var conReport = new SqlConnection(sqlConnection.strConn);
var cmdReport = new SqlCommand();
var myDataAdapter = new SqlDataAdapter();
myDataAdapter.SelectCommand = cmdReport;
SqlDataReader drReport;
DataSet dsReport = new DataSet();
//PerfLogDataSet();
cmdReport.CommandType = CommandType.Text;
cmdReport.Connection = conReport;
conReport.Open();
cmdReport.CommandText = baseQuery;
drReport = cmdReport.ExecuteReader();
myDataAdapter.Fill(dsReport); //where the error occurs
dsReport.Tables[0].Load(drReport);
drReport.Close();
conReport.Close();