我想先把大量数据一行一行输入到datagridview控件的表格里上,然后再通过一个按钮button提交到数据库中,我的思路是建一个dataset,把数据添进去,然后用DataAdapter 提交可是我不知道怎么把Datagridview的数据批量增加到dataset对象里

解决方案 »

  1.   

    把DataSet 绑定到DataGridview上,
      

  2.   

    dataset ds =new dataset();
    datatable dt=new datatable();
    ds.tables.add(dt);
    DataRow dr = ds.Tables[0].NewRow();
            dr["列名"] = "ss";//可以从DataGridview取数据
            dr["列名2"]="hh";//可以从DataGridview取数据
            ds.Tables[0].Rows.insertAT(dr,插入的位置);//Add方法也可以用!
            adapter.Update(ds);
    仅供参考!
      

  3.   

    楼上的我没看明白 ,,你是不是一次只能添加一行,或者每要增加一行都要手动写一个DataRow对象增加到DataTable里??
    我要的是批量增加
      

  4.   

    那就直接读取文件到DataGridview中吧!然后保存,总不能一个个输吧!
      

  5.   

    在datagridview里数据就是一个一个输进去的啊,,我要做的就是把datagridview 里的数据全部填充到dataset对象里,然后批量更新啊
    希望各位大佬帮忙看看
      

  6.   

    直接弄到dataset里,然后绑定到表格上显示不行吗?
    想更新就更新
    这样好象是比较合理的吧。
      

  7.   

    自己搞定了,,,,发个代码private void btAdd_Click(object sender, EventArgs e)
            {            
                string CommandText = "select id,name  from tb where 1=2";
                string CommandText1 = "select id as '编号',name as '姓名' from tb where 1=2";
                DataSet ds = new DataSet();
                DataTable table = new DataTable();
                SqlConnection sqlcon = new SqlConnection(strConn);
                SqlDataAdapter sqldr = new SqlDataAdapter(CommandText, sqlcon);
                //得到一张与数据库中指定表相当结构的空表
                sqldr.Fill(table);                       
                if (table== null)
                {
                    MessageBox.Show("错误:数据连接异常!");
                    return;
                }
                //数据有效性验证
                for (int i = 0; i < dg.Rows.Count - 1; i++)
                {
                    for (int j = i + 1; j < dg.Rows.Count - 1; j++)
                    {
                        if (dg.Rows[i].Cells[0].Value.ToString() == dg.Rows[j].Cells[0].Value.ToString())
                        {
                            MessageBox.Show("编号不允许重复:请修改"+(i+1)+"行与"+(j+1)+"行编号.","错误");
                            return;
                        }
                    }
                }
                //采集数据
                if (dg.Rows.Count > 1)
                {
                    for (int i = 0; i < dg.Rows.Count-1; i++)
                    {
                         DataRow dw = table.NewRow();
                         dw["id"] = dg.Rows[i].Cells[0].Value.ToString().Trim();
                         dw["name"] = dg.Rows[i].Cells[1].Value.ToString().Trim();
                         table.Rows.Add(dw);                    
                    }
                }
                else
                {
                    MessageBox.Show("没有数据","提示");
                    return;
                }
                SqlCommandBuilder sqlcb = new SqlCommandBuilder(sqldr);
                sqlcb.QuotePrefix = "[";                                   //保留在查询语句中出现的[
                sqlcb.QuoteSuffix = "]";                                   //保留在查询语句中出现的]
                sqldr.InsertCommand = sqlcb.GetInsertCommand();
                try
                {
                    sqldr.Update(table);
                    MessageBox.Show("保存成功");
                    //恢复表格开始的样子
                    sqldr = new SqlDataAdapter(CommandText1,sqlcon);
                    sqldr.Fill(ds);
                    dg.DataSource = ds.Tables[0].DefaultView;
                }
                catch (Exception err)
                {                
                   MessageBox.Show("  错误:" + err.Message,"错误");               
                }          
            }