我最近在做一个成绩分析系统,碰到计算几列之和并写入到总分字段中,同时要计算每门功课的名次,我现在是用循环语句,一条一条更新的,这样运行起来效率很慢,请问该怎么用批量更新来实现快速的更新数据。记录有700条左右。谢谢

解决方案 »

  1.   

    使用 SqlCommandBuilder 类
      

  2.   

    方法一:
    直接写入数据库:update 表 set 合计字段名称=累加字段1+累加字段2
    方法二:
    读取时计算(效率不高):select *,(累加字段1+累加字段2) as 合计字段名称 from 表
      

  3.   

    排名 用触发器:
    /*     ****xx排名****   */
    select @M_max=max(CHI) from PTGK_LK 
    select @M_count=count(*)from PTGK_LK where CHI <>0     
    set @m_cs=@M_count
    Set @m_pm=1
    while @m_cs >0
    begin
    select @n_max=max(CHI) from PTGK_LK where CHI<@M_maxif @M_max<>0 
    begin
    update PTGK_LK set CHIP=@m_pm where CHI=@M_max
    endselect @count=count(*) from PTGK_LK where CHI=@M_max
    set @M_max=@n_max
    set @m_pm=@m_pm+@count
    set @m_cs=@m_cs-1
    end