大众计算机学习网欢迎诸位!收藏本站注 册登 陆
常用教程:基础知识网络知识操作系统WPS网页制作数据库算法网页成功之路网络安全最新技术古典mid流行midmid背景下载中心
您现在的位置:首页 > 教程 > 文章页

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

Admin | 2007-10-11 13:34:46 | ReadNums | 6822 | 标签 asp.net | 打印本页
     

/// <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;

   }
  }


问题未解决:在线咨询我要在线咨询问题

网友评论

(访客)
内容实用原创,讲得很好。
20xx年x月x日
(站长)
有问题请在线咨询。
20xx年x月x日