我在 c# 中使用 asp.net。我试图在 aspx2.cs 上的 finally 语句中关闭连接。
在 aspx1.cs 中:
private void BindDataGrids()
{
try
{
DataGrid1.DataSource = instance.ShowDifferences(Convert.ToInt32(Request.QueryString
["CrewId"]), DateTime.Parse(Request.QueryString["StartDate"]), DateTime.Parse(Request.QueryString["EndDate"]));
DataGrid1.DataBind();
}
}
在 aspx2.cs 中:
public static SqlDataReader ShowDifferences(int crewID, DateTime date1, DateTime date2)
{
Database db = DatabaseFactory.CreateDatabase();
string sqlCommand = "stored_procedure";
DBCommandWrapper command = db.GetStoredProcCommandWrapper(sqlCommand);
try
{
........code...........
command.AddInParameter("@EndDate", DbType.Date, date2);
IDataReader reader = db.ExecuteReader(command);
return (SqlDataReader)reader;
}
finally
{
command.Command.Connection.Close();
}
当它到达 DataGrid1.DataBind(); 在 aspx1.cs 上。
我得到错误:
"Invalid attempt to FieldCount when reader is closed error"
如何解决这个问题?