咨询电话:15629116585(9:00-21:00)咨询QQ:272876 交流QQ群:87780123
微信

关注我们
在线咨询购买 | 注册 | 登录

武汉灵犀教育

SqlServer数据库游标 - 武汉灵犀教育

News center
资讯中心

资讯中心当前位置:首页>>资讯详情

SqlServer数据库游标
发布:武汉灵犀教育发布时间:2021-07-10

SQL Server中的游标是一种数据访问机制;

是处理数据的一种方法,为了查看或者处理结果集中的数据,游标提供了在结果集中一次一行或者多行前进或向后浏览数据的能力。使用游标用户可以对查询结果集中的数据行和列进行灵活的访问,从而降低系统开销。

游标的使用步骤:【游标:特殊类型】
第一步:定义游标
declare 游标名称 cursor [static|dynamic]
for 
      --查询语句
第二步:打开游标
open 游标名称[GLOBAL] 

第三步:使用游标
fetch next from 游标名称
多行数据时可以使用关键词@@FETCH_STATUS判断游标取值状态

第四步:释放资源
关闭游标
close 游标名称
--释放游标(解除分配)
deallocate 游标名称

【总结】:
--1、只进游标(可以访问新增数据),不能后退
-- 【静态游标和动态游标相同点】
--向下next 向上:prior第一:first 最后:last 绝对定位:absolute 相对定位:relative -2
--2、静态游标(不可以访问更新数据),相对定位|绝对定位都可以
--3、动态游标(不可以使用绝对定位)


ADO.NET使用游标查询实例:

/// <summary>
/// 执行SQL返回SqlDataReader对象(游标)
/// </summary>
/// <param name="sql"></param>
/// <param name="paras"></param>
/// <returns></returns>
public static SqlDataReader ExecuteReader(string sql, params SqlParameter[] paras)
{  //访问数据库连接对象
    SqlConnection conn = new SqlConnection("server=.;uid=sa;pwd=sa;database=TAOBAODB");
    conn.Open();//打开数据库
    SqlCommand command = new SqlCommand(sql, conn);//执行脚本对象
    command.Parameters.AddRange(paras);
    return command.ExecuteReader(CommandBehavior.CloseConnection);//命令行为
}

public static void Main()
{
     string sql="select * from Product where typeid=@typeId";
     SqlDataReader reader=DBHelper.ExecuteReader(sql,paras);
while(reader.Read()){--  next   bool值
    //获取值
}
       reader.Close();//释放资源
//
}