实现这么种效果:
datagridview绑定数据库
点击一个“新建”按钮,datagridview这个控件中就会增加一新行,然后在新行中输入数据,
如此进行几行的操作,点击“保存”按钮,数据就保存到绑定的数据库中,
若不点击“保存”,则数据则不会保存。 

解决方案 »

  1.   

    用DataTable 点新增添加一个DataRow 然后重新绑定DataGridView
      

  2.   

    暂存在一个datatable中,添加完成后,循环遍历datatable中的数据进行添加
      

  3.   

     用非绑定式填充数据
     if (int_合计订货量 < int_库存 || int_合计订货量 == int_库存)
                                {
                                    string[] strRow1 = new string[] { tbx货号.Text.Trim(), dtStrock.Rows[0]["GoodsName"].ToString(), dtStrock.Rows[0]["Stock"].ToString(), str_int_合计订货量, dtStrock.Rows[0]["Price"].ToString().Trim(), str_int_合计金额.Trim() };
                                    object[] objRows = new object[] { strRow1 };
                                    //MessageBox.Show("情况1");                                foreach (string[] rowArray in objRows)
                                    {
                                        dgvOdd.Rows.Remove(dgvOdd.Rows[intRow - 1]);
                                        dgvOdd.Rows.Add(rowArray);
                                    }
                                    return;
                                } 遍历控件,一条条存到数据库foreach (DataGridViewRow row_i in dgvOdd.Rows)
                    {
                        string strdgv货号 = dgvOdd.Rows[row_i.Index].Cells[0].Value.ToString();
                        string strdgv订货量 = dgvOdd.Rows[row_i.Index].Cells[3].Value.ToString();
                        string strdgv货款 = dgvOdd.Rows[row_i.Index].Cells[5].Value.ToString();                    string strSqlInsert = string.Format("INSERT INTO tb_订单(单号,需求商,货号,订货量,货款,出口单位,货运方式,审核,备注) VALUES('" + tbx订单号.Text.Trim() + "','" + tbx客户商.Text.Trim() + "','" + strdgv货号 + "','" + strdgv订货量 + "','" + strdgv货款 + "','" + tbx出口单位.Text.Trim() + "','" + tbx货运方式.Text.Trim() + "','" + tbx审核.Text.Trim() + "','" + tbx备注.Text.Trim() + "')");
                        
                        sql_class.RunSql(strSqlInsert);
                      }
      

  4.   

    给楼主一段超级简单的demo,是楼主需要的
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.Data.SqlClient;namespace Test
    {
        public partial class Form1 : Form
        {
            private DataSet set = null; // 请修改连接字符串
            private string strConnection = "Data Source=(local);Initial Catalog=pubs;User ID=;Password=";
            private string strCommand = "select * from jobs";        public Form1()
            {
                InitializeComponent();
            }        private void Form1_Load(object sender, EventArgs e)
            {
                SqlDataAdapter cmd = new SqlDataAdapter(strCommand, strConnection);
                set = new DataSet();
                cmd.Fill(set);
                dataGridView1.DataSource = set.Tables[0];            cmd.SelectCommand.Connection.Close();
                cmd.SelectCommand.Connection.Dispose();
            }        private void add_Click(object sender, EventArgs e)
            {
                DataRow newRow = set.Tables[0].NewRow();
                set.Tables[0].Rows.Add(newRow);
            }        private void save_Click(object sender, EventArgs e)
            {
                SqlConnection conn = new SqlConnection(strConnection);
                SqlDataAdapter da = new SqlDataAdapter(strCommand, strConnection);            SqlCommandBuilder cd = new SqlCommandBuilder(da);
                da.InsertCommand = cd.GetInsertCommand();
                da.UpdateCommand = cd.GetUpdateCommand();
                da.DeleteCommand = cd.GetDeleteCommand();            try
                {
                    da.Update(set);
                    set.AcceptChanges();
                    MessageBox.Show("添加成功");
                }
                catch(Exception ex)
                {
                    set.RejectChanges();
                    MessageBox.Show("添加失败" + ex.Message);
                }
                finally
                {
                    conn.Close();
                    conn.Dispose();
                }
            }
        }
    }