多谢两位大虾, 我再试试看。
依两位大匙的方法还是不行,因为我这个方法的作用是根据一个SQL语句,返回一个SqlDataReader,如果SqlConnection关闭了,就会在调用SqlDataReader.HasRows时及读取SqlDataReader.Read()时出错,如下图:
该方法的全部代码如下:
public SqlDataReader GetReader(string strSql, bool isProcess, params SqlParameter[] paras)
{
SqlConnection conn = new SqlConnection(connectionString);
SqlCommand cmd = new SqlCommand(strSql, conn);
if (isProcess)
{
cmd.CommandType = CommandType.StoredProcedure;
}
if (paras != null)
{
foreach (SqlParameter p in paras)
{
cmd.Parameters.Add(p);
}
}
SqlDataReader sdr = null;
try
{
conn.Open();
sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
catch (SqlException se)
{
MessageBox.Show(se.Message, "錯誤", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
return sdr;
}