如题:
C#如何保存DataGridView里多行数据?两种情况:一种是全部是新添加数据执行添加操作,一种是数据库原有信息执行修改操作。

解决方案 »

  1.   

    foreach(GridViewRow gr in GridView1.Rows){}
    遍历findcontrol查询保存数据
      

  2.   

    数据源绑定原有的DataTable,可以通过DataTable.GetChanges()获得新增或者修改过的数据。
      

  3.   

    可是针对第一种情况了。没有原有的DataTable、
      

  4.   

    对了,再配合DataAdapter,CommandBuilder 新增,更新都不用直接写SQL了。很方便。
      

  5.   


    没关系啊,一开始Select * from table1的DataTable虽然是空的(Rows.Count=0),
    绑定DataGridView.DataSource之后,新增也能取得到。
      

  6.   

    把数据放到 datatable 或 dataset 中,在进行,数据库的表结果的复制,也即使复制一下你要保存到表的 数据结构,现在好多框架都支撑的
      

  7.   


    public partial class Form1 : Form
        {
            private OleDbConnection connection = null;
            private OleDbCommand selectCommand = null;
            private OleDbDataAdapter dataAdapter = null;
            private string connectionString = 
                @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=..\..\DB\Customers.mdb;Persist Security Info=True";        public Form1()
            {
                InitializeComponent();
            }        private void Form1_Load(object sender, EventArgs e)
            {
                connection = new OleDbConnection(connectionString);
                selectCommand = connection.CreateCommand();
                selectCommand.CommandText = "SELECT CustomerID, CompanyName, ContactName, Address, Phone FROM Customers";
                dataAdapter = new OleDbDataAdapter();
                dataAdapter.SelectCommand = selectCommand;
                DataTable data = new DataTable();
                dataAdapter.Fill(data);
                this.dataGridView1.DataSource = data;            OleDbCommandBuilder builder = new OleDbCommandBuilder(dataAdapter);
                dataAdapter.UpdateCommand = builder.GetUpdateCommand();
                dataAdapter.InsertCommand = builder.GetInsertCommand();
                dataAdapter.DeleteCommand = builder.GetDeleteCommand();
            }        private void button1_Click(object sender, EventArgs e)
            {
                DataTable data = (DataTable)this.dataGridView1.DataSource;
                DataTable changedData = data.GetChanges();            if (changedData != null)
                {
                    dataAdapter.Update(changedData);
                    data.AcceptChanges();
                }
            }
        }