有一个datatable,结构与一个表完全一样,怎么把它一次性全部插入到表中呢?插入!
如果,与表结构不一样的话,也可以直接插入么?或者在插入的时候,把其他字段补齐?怎么办才好呢?在我做出来之前,给出答案,我就给分。

解决方案 »

  1.   

    用 循环 PING 数据库
      然后一次性 插入
    string str="";
    For(int i=0;i<dataTable.Rows.count;i++)
    {
      str+="\n insert into a(........)"
    }
    然后执行 STR.
    如果,与表结构不一样的话,只能有选择性的插入 数据类型一样的数据..
      

  2.   

    遍历datatable 
    一个行列的嵌套循环 取出数据 做insert操作
      

  3.   

    如果与表结构一样,就可以用Adapter.Update()方法来一次性的插入或删除或修改了,不用自己写SQL语句.
      

  4.   

    lianshaohua可以说得再详细一些么
      

  5.   

    (限制:不包括任何关系,必须有唯一列或主键,必须创建CommandBuilder对象):指定Adapter的selectcommand,创建commandBuilder对象.查询出数据,填充到数据集中,显示到DataGridView里,如果进行了插入,删除或修改操作,那么只需要在保存的时候用Apater.Update()语句就可以保存到数据库去
      

  6.   

    要更新到表里面的数据不是原来查询出的数据,是新生成的一张datatable,就是单纯的有一些数据在datatable里面,要更新到具有相同结构的数据库表中
      

  7.   


            private void button4_Click(object sender, EventArgs e)
            {
                string con =@" Provider=Microsoft.Jet.OLEDB.4.0;Data Source=";
                string dbname=@"\ElectronMap.dat";
                try//查询数据
                {
                    this.oleDbConnection1.Close();
                    this.oleDbConnection1.ConnectionString = con + Directory.GetCurrentDirectory() + dbname;
                    this.oleDbConnection1.Open();                this.oleDbDataAdapter1.SelectCommand.CommandText = "select * from AlarmType ";//表AlarmType必须有一个主键或指定唯一一列
                    this.oleDbDataAdapter1.SelectCommand.ExecuteNonQuery();
                    this.dataSet1.Clear();
                    this.oleDbDataAdapter1.Fill(this.dataSet1,"AlarmType");
                    this.dataGridView1.DataSource = this.dataSet1.Tables[0];
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                }
                finally
                {
                    if (this.oleDbConnection1.State == ConnectionState.Open)
                    {
                        this.oleDbConnection1.Close();
                    }
                }
            }        private void button5_Click(object sender, EventArgs e)
            {
                try
                {                this.oleDbDataAdapter1.Update(this.dataSet1,"AlarmType");//提交数据到数据库
                }
                finally
                { 
                }
            }        private void Form1_Load(object sender, EventArgs e)
            {
                builder = new System.Data.OleDb.OleDbCommandBuilder(this.oleDbDataAdapter1);//创建一个CommandBuilder的对象,并指定一个DataAdapter
            }