本帖最后由 lihelihe199019901990 于 2014-09-17 09:38:15 编辑

解决方案 »

  1.   


    好像是啊  我MySql数据库里设置的主键是 id  但我想让id不可修改  您看我这个应该怎么修改呢
      

  2.   

    改不改id,你自己代码可以控制
    dataset里必须有主健字段
      

  3.   

    你要理解后台SQL语句是怎么做的
    update table set columnname=value where id=n
    dataset里必须有主键和数据库对应,以便能够更新当前行的数据,而不是一下把数据库里所有数据都给更新掉
    这个跟你是否修改主键没有关系.
      

  4.   


    我知道您说的 要靠主键找到需要修改的的那一行   我把全部的代码贴出来  您能不能帮忙看一下 到底应该在哪里做修改  十分感谢  这个问题困扰我好久了MySqlConnection conn;
            DataSet ds;
            MySqlDataAdapter sda;        private void Form4_Load(object sender, EventArgs e)
            {
                conn = new MySqlConnection("Data Source=localhost;Database = first;User Id=root;PassWord=ccl");
                MySqlCommand cmd = new MySqlCommand("select * from people",conn);
                sda = new MySqlDataAdapter();
                sda.SelectCommand = cmd;
                ds = new DataSet();
                sda.Fill(ds,"cs");
                dataGridView1.DataSource = ds.Tables[0];
            }        private void button1_Click(object sender, EventArgs e)
            {        
                
                DataTable dt = ds.Tables["cs"];
                sda.FillSchema(dt,SchemaType.Mapped);
                DataRow dr = dt.Rows.Find(txtNo.Text);
                dr["name"]=txtName.Text.Trim();
                dr["dept"] = this.txtDept.Text.Trim();
                dr["age"] = this.txtAge.Text.Trim();
                dr["sex"] = this.txtSex.Text.Trim();
                MySqlCommandBuilder cmdbuilder = new MySqlCommandBuilder(sda);
                sda.Update(dt);
                    
                        }        private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
            {
                txtNo.Text = dataGridView1.SelectedCells[0].Value.ToString();
                txtName.Text = dataGridView1.SelectedCells[1].Value.ToString();
                txtDept.Text = dataGridView1.SelectedCells[2].Value.ToString();
                txtAge.Text = dataGridView1.SelectedCells[3].Value.ToString();
                txtSex.Text = dataGridView1.SelectedCells[4].Value.ToString();
                        }
      

  5.   

    people表的主健字段是什么?
    把people表结构贴上来看看
      

  6.   

    改成这样呢
     private void button1_Click(object sender, EventArgs e)
            {        
                
                DataTable dt = ds.Tables["cs"];
                //sda.FillSchema(dt,SchemaType.Mapped);
                //DataRow dr = dt.Rows.Find(txtNo.Text);
               DataRow []drs = dt.Select("id=" + txtNo.Text);
               if(drs.Length>0)
              {
               DataRow dr = drs[0];
                dr["name"]=txtName.Text.Trim();
                dr["dept"] = this.txtDept.Text.Trim();
                dr["age"] = this.txtAge.Text.Trim();
                dr["sex"] = this.txtSex.Text.Trim();
                MySqlCommandBuilder cmdbuilder = new MySqlCommandBuilder(sda);
                sda.Update(dt);
                    
                }        }
      

  7.   

    奇怪,你看看下面这个帖子对你有帮助不?
    http://www.cnblogs.com/jinyuttt/archive/2010/07/28/1787111.html