asp.net如何将DataTable里的数据全部保存到数据库?
数据库表结构和DataTable表结构一样~求高人代码!

解决方案 »

  1.   

    我拿Gridview控件举例
    代码如下:protected void Page_Load(object sender, EventArgs e) 
        { 
        SetBind() ; 
        } 
    private void SetBind() 
        { 
          string conntext = (ConfigurationManager.ConnectionStrings["ConnectionString"]).ToString(); 
            SqlConnection conn = new SqlConnection(conntext); 
            conn.Open(); 
            string sql="SELECT FlightNO,BillNO,ReceiveTicket FROM Positioning"; 
            SqlDataAdapter da = new SqlDataAdapter(sql,conn); 
            DataSet ds = new DataSet(); 
            da.Fill(ds); 
            DataTable dt; 
            dt=ds.Tables[0]; 
            GridView1.DataSource = dt; 
            GridView1.DataBind(); 
          
        }
      

  2.   

    逐一循环,拼凑成SQL,就写进去了.
      

  3.   

    http://topic.csdn.net/t/20050308/09/3832496.html
    http://topic.csdn.net/t/20041227/11/3678780.html
      

  4.   

    参考这个一次更新所有记录:http://www.cnblogs.com/insus/articles/1400150.html
      

  5.   


    /// <summary>
            /// 批量插入数据
            /// </summary>
            /// <param name="_selist"></param>
            private void InsertData(IList<SendSmsStatisticsEntity> _selist)
            {
                string sql = "Select * from SendSmsStatistics where id<0";
                SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["ShtxSmsService"].ToString());
                SqlDataAdapter da = new SqlDataAdapter(sql, cn);
                DataSet ds = new DataSet();
                try
                {
                    cn.Open();
                    da.Fill(ds, "Table1");
                }
                finally
                {
                    cn.Close();
                }
                DataRow dr;
                foreach (SendSmsStatisticsEntity se in _selist)
                {
                    dr = ds.Tables["Table1"].NewRow();
                    dr["Tel"] = se.Tel;
                    dr["CusKind"] = se.CusKind;
                    dr["RealNum"] = se.RealNum;
                    dr["SumNum"] = se.SumNum;
                    dr["CreateDate"] = se.CreateDate;
                    ds.Tables["Table1"].Rows.Add(dr);
                }
                sql = "insert into SendSmsStatistics(Tel,CusKind,RealNum,SumNum,CreateDate) VALUES (@Tel,@CusKind,@RealNum,@SumNum,@CreateDate)";
                da.InsertCommand = new SqlCommand(sql, cn);
                SqlParameter param = new SqlParameter();
                param = da.InsertCommand.Parameters.Add(new SqlParameter("@Tel", SqlDbType.Char, 50));
                param.SourceVersion = DataRowVersion.Current;
                param.SourceColumn = "Tel";            param = da.InsertCommand.Parameters.Add(new SqlParameter("@CusKind", SqlDbType.Int));
                param.SourceVersion = DataRowVersion.Current;
                param.SourceColumn = "CusKind";            param = da.InsertCommand.Parameters.Add(new SqlParameter("@RealNum", SqlDbType.Int));
                param.SourceVersion = DataRowVersion.Current;
                param.SourceColumn = "RealNum";
                param = da.InsertCommand.Parameters.Add(new SqlParameter("@SumNum", SqlDbType.Int));
                param.SourceVersion = DataRowVersion.Current;
                param.SourceColumn = "SumNum";
                param = da.InsertCommand.Parameters.Add(new SqlParameter("@CreateDate", SqlDbType.DateTime));
                param.SourceVersion = DataRowVersion.Current;
                param.SourceColumn = "CreateDate";            //批量添加数据
                try
                {
                    cn.Open();
                    da.Update(ds, "Table1");
                }
                catch (Exception ex)
                {
                    listBox1.Items.Add("数据库错误:" + ex.Message.ToString());
                }
                finally
                {
                    cn.Close();
                }
            }
      

  6.   

    三句话就ok了 System.Data.SqlClient.SqlBulkCopy bcp = new System.Data.SqlClient.SqlBulkCopy("连接字符串");
                bcp.DestinationTableName="表名";
                bcp.WriteToServer(dataTable);
      

  7.   

    1.
    只有 Insert ? 那么用楼上 的 SqlBulkCopy2.
    Insert/Update/Delete ? 那么用 DataAdapter.Update