读书人

datagridview增加记录的有关问题

发布时间: 2012-03-20 14:01:11 作者: rapoo

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不显示
}

读书人网 >C#

热点推荐