我用代码创建一个与数据库结构相同的DataTable。然后向DataTable中插入几行数据,有没有方法将这个DataTable一次性插入数据库啊?

解决方案 »

  1.   

    可以用CommandBuilder
    如下:public   DataSet   SelectSqlSrvRows(DataSet   myDataSet,string   myConnection,string   mySelectQuery,string   myTableName)   { 
            SqlConnection   myConn   =   new   SqlConnection(myConnection); 
            SqlDataAdapter   myDataAdapter   =   new   SqlDataAdapter(); 
            myDataAdapter.SelectCommand   =   new   SqlCommand(mySelectQuery,   myConn); 
            SqlCommandBuilder   custCB   =   new   SqlCommandBuilder(myDataAdapter);         myConn.Open();         DataSet   custDS   =   new   DataSet(); 
            myDataAdapter.Fill(custDS,   "Customers ");         //在这里修改数据集中的数据 
            myDataAdapter.Update(custDS,   "Customers ");         myConn.Close();         return   custDS; 
      } 
      

  2.   

     SqlConnection   myConn   =   new   SqlConnection(myConnection); 
            SqlDataAdapter   myDataAdapter   =   new   SqlDataAdapter(); 
            myDataAdapter.SelectCommand   =   new   SqlCommand(mySelectQuery,   myConn); 
            SqlCommandBuilder   custCB   =   new   SqlCommandBuilder(myDataAdapter); 
    myConnection : 数据库连接字符串
    mySelectQuery : sql 语句 
      

  3.   

    sqlDataAdapter的update方法,自己可以查查资料。
      

  4.   

    郁闷,今天RP值太低了,现在能运行成功了。不知道刚才哪错了。 把代码贴出来
    DataTable dt = new DataTable();
            string a = ConfigurationManager.ConnectionStrings["sqlConn"].ToString();
            SqlConnection con = new SqlConnection(a);
            SqlCommand cmd = new SqlCommand("select * from student where 1=2", con);
            SqlDataAdapter sda = new SqlDataAdapter(cmd);
            SqlCommandBuilder Builder = new SqlCommandBuilder(sda);
            sda.Fill(dt);
            DataRow dr;
            dr = dt.NewRow();
            dr[0] = "1";
            dr[1] = "q";
            dt.Rows.Add(dr);
            dr = dt.NewRow();
            dr[0] = "2";
            dr[1] = "W";
            dt.Rows.Add(dr);
            sda.Update(dt);