3天了,继续问,
C/S模式中,datagridview绑定了数据库中的数据表,我想实现的功能是客户可以编辑datagridview,然后点击更新按妞后,datagridview跟数据表都更新, 
麻烦各位写个源代码,成功之后立马给分,连同前面的4个帖子共300分送上! 1星的保证到3星!
数据表名为jsgx,结构为 
工序编号(varchar)  工序名称(varchar)  工序价格(int) 
下面的是连接字符串 
string source = "pcdb.mdb"; 
string conn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + source; 
自己试了N种方法都不行!!

解决方案 »

  1.   

    孟子大哥是这样写的,但是我的是ACCESS数据库,我改成OLEDB,还是不更新!点击更新按钮后,数据有成数据表中的了!
    SqlDataAdapter da=new SqlDataAdapter("select * from product",strcon); 
    SqlCommandBuilder cb=new SqlCommandBuilder(da); 
    DataSet ds = new DataSet(); 
    da.Fill(ds); 
    dataGridView1.DataSource=ds.Tables[0]; //保存 
    da.Update(ds); 
    在线等,工作看没了,大家帮帮忙啊!
      

  2.   

    使用 SqlCommandBuilder,数据表必须设置主键
      

  3.   

    这些最基本的东西不懂,就应该看书学习。显示数据并绑定到DataGridView用
    DataAdapter.Fill(DataSet);更新回去用:
    DataAdapter.Update(DataSet);
    DataAdapter.Update(DataTable);
      

  4.   

    哎,不是看不懂,问两天了,就不知道哪里出了问题,
    OledbCommandBuilder也设置了,就是不行!
      

  5.   

    哎,不是看不懂,问两天了,就不知道哪里出了问题,
    OledbCommandBuilder也设置了,就是不行!
    四楼的两个问题我都代码里都有,
    主键也换了两个还是不行,草他吗!
      

  6.   

    access表的如果不能更新很有可能是因为权限的问题!!!添加一个everyone的访问权限试试
      

  7.   

    没有更新到数据库中,程序上总会有什么反映吧,比如运行中有Exception,有的话放出来。
      

  8.   

     private void button1_Click(object sender, EventArgs e)
            {
                try
                {
                string source = "pcdb.mdb";
                string conn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + source;
                
                OleDbConnection olecon = new OleDbConnection(conn);
                OleDbDataAdapter da = new OleDbDataAdapter("select * from jsgx", olecon);
                
                DataSet ds = new DataSet();
                da.Fill(ds);
               
                
               
                    OleDbCommandBuilder cb = new OleDbCommandBuilder(da);
                    //保存 
                    da.Update(ds);
                    MessageBox.Show("更新成功!"); 
                    
                }
                catch(System.Exception ex)
                {
                   MessageBox.Show(ex.ToString()); 
                    return; 
                }
    现在的问题是前台更新了,数据库好像没变,郁闷!!
      

  9.   

    ms-help://MS.MSDNQTR.v80.chs/MS.MSDN.v80/MS.VisualStudio.v80.chs/dv_fxmclictl/html/1660f69c-5711-45d2-abc1-e25bc6779124.htm这个网址有例子,我试过,可以实现。记得给分。
      

  10.   


    public partial class Form1 : Form
        {
    Form1数据成员#region Form1数据成员
            private DataTable DT = new DataTable();
            private SqlDataAdapter SDA = new SqlDataAdapter();
    #endregionForm1构造函数#region  Form1构造函数 
            public Form1()
            {
                InitializeComponent();
            }
    #endregion连接数据库显示数据#region  连接数据库显示数据
            private void Form1_Load(object sender, EventArgs e)
            {            SqlConnection conn = new SqlConnection("server=127.0.0.1;database=pubs;uid=sa");
                SqlCommand SCD = new SqlCommand("select * from tables", conn);
                SDA.SelectCommand = SCD;
                SDA.Fill(DT);
                dataGridView1.DataSource = DT;
            }
    #endregion使用Update更新数据库#region  使用Update更新数据库
            private void toolStripButton1_Click(object sender, EventArgs e)
            {
                try
                {
                    SqlCommandBuilder SCB = new SqlCommandBuilder(SDA);                
                    SDA.Update(DT);
                }
                catch (System.Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                    return;
                }
                MessageBox.Show("更新成功!");
            }
    #endregion 
      

  11.   

    你这个代码写的有问题,你想点击button1来更新数据,但是每次你都是重新从数据库中选择新数据填到ds,再UPDATE 那肯定是没办法更新你的数据!
    你起码得把,从数据库取数据和UPDATE新数据这两个部分分开来写,而不是写在一个按钮事件中,起码也得这样:
    public SqlConnection cn;
            public SqlCommand cm;
            public DataSet ds;
            SqlDataAdapter da;
            private void button1_Click(object sender, EventArgs e)
            {
                cn = new SqlConnection(@"Data Source=FEXINS-PC\SQLEXPRESS;Initial Catalog=fexinsTest;Integrated Security=True;Pooling=False");
                ds = new DataSet();
                cm = new SqlCommand ("select * from fexinstest",cn);
                da = new SqlDataAdapter(cm);
                da.Fill(ds);
                SqlCommandBuilder sb = new SqlCommandBuilder(da);
                this.dataGridView1.DataSource = ds.Tables[0];
                
                //ds.Tables[0].PrimaryKey = new DataColumn[] { ds.Tables[0].Columns["index"] };
            }
            private void button2_Click(object sender, EventArgs e)
            {
                da.Update(ds);
            }