那样只是更新了dataset中的数据,是内存中的逻辑表,没有更新物理数据库呀
DataGrid是直接和数据库连接的,所以修改会同步到数据库的

解决方案 »

  1.   

    把textBox中的datasource和dataBinding的两个属性绑定
      

  2.   

    int row=this.BindingContext[this.thisDataSet,"学生"].Position; string sqlSelect="SELECT 学号,姓名,性别,出生年月 FROM 学生 WHERE 年级="+"'"+Form2.toNew1+"'"+"AND 班级="+"'"+Form2.toNew2+"'"; SqlConnection thisConnection=new SqlConnection(@"Data Source=SERVER;User ID=sa;Password=;Initial Catalog=dx"); thisConnection.Open(); SqlDataAdapter thisAdapter=new SqlDataAdapter(sqlSelect,thisConnection); SqlCommandBuilder thisBuilder=new SqlCommandBuilder(thisAdapter); thisDataSet=new DataSet(); thisAdapter.Fill(thisDataSet,"学生"); this.thisDataSet.Tables["学生"].Rows[row]["姓名"]=textBox1.Text.Trim();
    this.thisDataSet.Tables["学生"].Rows[row]["性别"]=comboBox1.Text.Trim();
    this.thisDataSet.Tables["学生"].Rows[row]["出生年月"]=textBox2.Text.Trim();

    thisAdapter.Update(this.thisDataSet,"学生");
    MessageBox.Show("修改成功!"); dataGrid1.DataSource = thisDataSet.Tables["学生"]; this.thisDataSet_PositionChanged(); thisConnection.Close();这是修改例子按钮,在这之前需要对datagrid或者textbox等等控件先进行绑定
      

  3.   

    dataGrid1.CaptionText=Form2.toNew1+Form2.toNew2;

    string sqlSelect="SELECT 学号,姓名,性别,出生年月 FROM 学生 WHERE 年级="+"'"+Form2.toNew1+"'"+"AND 班级="+"'"+Form2.toNew2+"'"; SqlConnection thisConnection=new SqlConnection(@"Data Source=SERVER;User ID=sa;Password=;Initial Catalog=dx"); thisConnection.Open(); SqlDataAdapter thisAdapter=new SqlDataAdapter(sqlSelect,thisConnection); SqlCommandBuilder thisBuilder=new SqlCommandBuilder(thisAdapter); thisDataSet=new DataSet(); thisAdapter.Fill(thisDataSet,"学生"); dataGrid1.DataSource = thisDataSet.Tables["学生"]; DataGridTableStyle dgts = new DataGridTableStyle(); dgts.MappingName = "学生";    DataGridTextBoxColumn TextCol = new DataGridTextBoxColumn();
    TextCol.MappingName = "学号";
    TextCol.HeaderText = "学号";
    TextCol.Width = 82; dgts.GridColumnStyles.Add(TextCol); TextCol = new DataGridTextBoxColumn();
    TextCol.MappingName = "姓名";
    TextCol.HeaderText = "姓名";
    TextCol.Width = 82;

    dgts.GridColumnStyles.Add(TextCol); TextCol = new DataGridTextBoxColumn();
    TextCol.MappingName = "性别";
    TextCol.HeaderText = "性别";
    TextCol.Width = 64;

    dgts.GridColumnStyles.Add(TextCol); TextCol = new DataGridTextBoxColumn();
    TextCol.MappingName = "出生年月";
    TextCol.HeaderText = "出生年月";
    TextCol.Width = 102;

    dgts.GridColumnStyles.Add(TextCol);
    dataGrid1.TableStyles.Add(dgts); textBox1.DataBindings.Add("text",thisDataSet,"学生.姓名"); comboBox1.DataBindings.Add("text",thisDataSet,"学生.性别"); textBox2.DataBindings.Add("text",thisDataSet,"学生.出生年月"); thisConnection.Close();
    这里有绑定datagrid和textbox的例子代码,注意!我使用的公共的dataset这样上面的更新按钮才有效