public static bool insert_dt(DataTable dt)
        {
            using (SqlConnection conn = new SqlConnection(connectionString))
            {
                try
                {
                    DataTable datatale = dt;
                    SqlCommand cmd = conn.CreateCommand();
                    cmd.CommandText = "Insert Into Temp_Line_yd(tno,xlname,bh,crs,xhs,lxr,crjsj,xhjsj,S_userID,lname) values(@tno,@xlname,@bh,@crs,@xhs,@lxr,@crjsj,@xhjsj,@S_userID,@lname)";
                    cmd.CommandType = CommandType.Text;           
                    SqlDataAdapter ada = new SqlDataAdapter(cmd);
                    SqlCommandBuilder myCommandBuilder = new SqlCommandBuilder();
                    ada.InsertCommand = myCommandBuilder.GetInsertCommand();                    foreach (DataRow dr in dt.Rows)
                    {
                        if (dr.RowState != DataRowState.Added)
                        {
                            dr.SetAdded();
                        }
                    }
                    conn.Open();
                    ada.Update(dt);
                }
                catch { }
                finally { conn.Close();  }
                }
            return true;
        }
  
上面的写法都是自己找资料乱写的,结果不对,不能成功插入到数据库。希望有这方面经验的朋友给点指点。

解决方案 »

  1.   

    批量插入,如果你的TABLE是一个表的东东,可以如下
    [code=SQL]
    insert into t1(t1a) values select t2a from t2
      

  2.   

    可以参考如下:http://net-liu.javaeye.com/blog/699294
      

  3.   

    不知道你那代码哪找的,没效率不说还各种错误。如果会插入数据到datatable就按下面方法来吧,当前最高效的批量插入方法之一。
    DataTable dt = new DataTable();
    //把要插入的数据放到dt中
    string connectionString = @"Data Source=(local);" + "Integrated Security=SSPI;database=scada";
    SqlBulkCopy sqlbulkcopy = new SqlBulkCopy(connectionString, SqlBulkCopyOptions.UseInternalTransaction);
                    sqlbulkcopy.DestinationTableName = "Temp_Line_yd";
                    sqlbulkcopy.WriteToServer(dt);
      

  4.   

    DataTable datatale = dt;
    这样也行?!!