返回值类型为SqlDataReader的用法

论坛 期权论坛 编程之家     
选择匿名的用户   2021-5-29 09:47   411   0
ContractedBlock.gif ExpandedBlockStart.gif Code
public SqlDataReader getAgeByDepartment(string departmentValue)
{
SqlConnection con
= getConnection();
SqlCommand cmd
= new SqlCommand("AgeByDepartment", con);
cmd.CommandType
= CommandType.StoredProcedure;
cmd.Parameters.Add(
"department",SqlDbType.NVarChar,10).Value=departmentValue;
cmd.ExecuteNonQuery();
SqlDataReader reader
= cmd.ExecuteReader(CommandBehavior.CloseConnection);
return reader;
}
ContractedBlock.gif ExpandedBlockStart.gif Code
protected void Button1_Click(object sender, EventArgs e)
{

SqlDataReader reader
= sql.getAgeByDepartment(DropDownList1.Text.ToString());
//reader.Read();
GridView1.DataSource = reader;
GridView1.DataBind();
reader.Close();

}

注意:在public SqlDataReader getAgeByDepartment(string departmentValue)函数内的SqlConnection方法不要使用using(SqlConnection con = getConnection())

否则调用reader的时候SqlDataReader会处于关闭状态!

CommandBehavior.CloseConnection的功能恰好就是为了避免类似的尴尬境地,它能够保证当SqlDataReader对象被关闭时,其依赖的连接也会被自动关闭。

转载于:https://www.cnblogs.com/xmaiC/archive/2009/04/14/1436002.html

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP