日期:2014-05-18  浏览次数:20660 次

datagridview增加记录的问题
增加记录后datagridview 无法显示增加的记录
重新绑定数据源后datagridview中的ID不显示,重新打开程序后又正常的。
datagridview.update也刷新不出数据!
请问各位大侠,有没有不用重新绑定数据源,即可让新增加的记录即时显示的办法呀?

C# code
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.OleDb;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication2
{
    public partial class Form1 : Form
    {
        private OleDbConnection conn;
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            conn = DBOperator.GetConn();
            if (conn == null)
            {
                MessageBox.Show("数据库连接失败");
                return;
            }
            OleDbDataAdapter da = new OleDbDataAdapter("select * from person",conn);
            
            DataSet ds = new DataSet();
            da.Fill(ds, "person");
            dataGridView1.DataSource = ds.Tables["person"];
            conn.Close();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            conn = DBOperator.GetConn();
            OleDbDataAdapter da = new OleDbDataAdapter("select * from person", conn);
            OleDbCommandBuilder builder = new OleDbCommandBuilder(da);
            builder.QuotePrefix = "[";
            builder.QuoteSuffix = "]";
            DataSet ds = new DataSet();
            da.Fill(ds,"person");
            DataRow dr =ds.Tables["person"].NewRow();
            dr["name"] = textBox1.Text;
            dr["password"] =textBox2.Text;
            dr["age"] = textBox3.Text;
            ds.Tables["person"].Rows.Add(dr);
            da.Update(ds, "person");

           
           // dataGridView1.Update();  此语句无效!
  dataGridView1.DataSource = ds.Tables["person"]; //datagridview首行ID不显示
        }
    }
}



------解决方案--------------------
不用重新绑定数据源,即可让新增加的记录即时显示的办法:使用Ajax。
给你一个现成的,
http://www.cnblogs.com/jacklaw/archive/2007/07/04/805281.aspx
------解决方案--------------------
引用楼主 diamondgate 的帖子:
private void button2_Click(object sender, EventArgs e)
{
。。。

da.Update(ds, "person");


// dataGridView1.Update(); 此语句无效!

//这里添一句:
da.Fill(ds,"person");


dataGridView1.DataSource = ds.Tables["person"]; //datagridview首行ID不显示
}