批量更新数据库表中的数据

Admin | 2007-10-11 13:34:46 | TrackRecord: 2375 Times | Tag标签:asp.net 打印本页

您当前所处的位置是:〖首页〗→【文章页】 本站共有16个图文教程栏目,请用心拜读!

本站提供经典的Excel公式函数实例,Word排版技巧,PPT教程;同时更兼有Flash,PowerPoint,数据库等技术文章。

/// <summary>
  /// 更新内存中的数据到数据库
  /// </summary>
  /// <param name="tableName"></param>
  public void UpdateDataSetToDB(string tableName)
  {
   HttpContext.Current.Application.Lock();
   try
   {
    DataSet myDS=(DataSet)HttpContext.Current.Application["aDataSet"];
    SqlDataAdapter myDA= (SqlDataAdapter)HttpContext.Current.Application["aDA"];
    SqlCommandBuilder sbTemp=new SqlCommandBuilder(myDA);
    myDA.Update(myDS,tableName);
   }
   catch(Exception ex)
   {
    WebLog.WriteLog("更新内存中的数据到数据库出现了错误:" + ex.Message);
   }
   HttpContext.Current.Application.UnLock();
  }

 

 

我写的一个更新一个datable的方法,给你参考一下

public string ExecuteInsert(DataTable dt)
  {
   
   string sql="";
   string fieldStr="";
   string valueStr="";
   int i=0;
   string result;
   try
   { 
    
    for(i=0;i<dt.Columns.Count;i++)
    {
     fieldStr += dt.Columns[i].ColumnName + ",";     
    }

    fieldStr = fieldStr.Substring(0,fieldStr.Length-1);   
   
    for(i=0;i<dt.Rows.Count;i++)
    {
     sql = "insert into {0}({1}) values({2})";
     valueStr ="";
     for(int j=0;j<dt.Columns.Count;j++)
     {
      
      switch(System.Type.GetTypeCode(dt.Rows[i][j].GetType()))
      {
       case System.TypeCode.Byte:
       case System.TypeCode.Char:
       case System.TypeCode.Decimal:
       case System.TypeCode.Double:
       case System.TypeCode.Int16:
       case System.TypeCode.Int32:
       case System.TypeCode.Int64:
       case System.TypeCode.SByte:
       case System.TypeCode.Single:
       case System.TypeCode.UInt16:
       case System.TypeCode.UInt32:
       case System.TypeCode.UInt64:
        valueStr += dt.Rows[i][j].ToString() +",";
        break;
       case System.TypeCode.DateTime:
       case System.TypeCode.String:       
        valueStr += "'" + dt.Rows[i][j].ToString() +"',";
        break;
       case System.TypeCode.Boolean:
       {
        if ((bool)dt.Rows[i][j]==true)
         valueStr += "1,";
        else
         valueStr += "0,";

        break;
       }
       default:
        valueStr +=" null,";
        break; 
        }      
      }
     
     valueStr = valueStr.Substring(0,valueStr.Length-1); 
     sql = string.Format(sql,dt.TableName,fieldStr,valueStr);
     result = this.ExecuteNonQuery(sql);
    
    }
    
    
    return "ok";
   }

   catch(Exception ex)
   {
    return ex.Message;

   }
  }



上一篇:备份与恢复数据库    下一篇:用SqlCommandBuilder 实现批量更新

会员评论列表:
针对本篇文章或本站,请您发表个人的建议或批评!
FreeBoxPc

谷歌搜索 百度搜索 本站仅与内容具备一定的实用价值的原创网站交换友情链接,力争为大众做出更优质的服务!
All Rights Reserved版权所有 本站备案信息:滇ICP备11001339号-2 站长联系方式 Email:dzwebs@126.com