//修改信息代码
    protected void Button3_Click(object sender, EventArgs e)
    {        SqlConnection sql = Class1.connection();
        sql.Open();
        string str = string.Format("update table_1 set      qq='{0}',dz='{1}',phone='{2}',sex='{3}',number='{4}'where xm='{5}'",DropDownList4.SelectedValue, TextBox2.Text, TextBox3.Text, TextBox4.Text, DropDownList3.SelectedValue, TextBox5.Text);
       
        SqlDataAdapter sda = new SqlDataAdapter(str,sql);
        SqlCommandBuilder scb = new SqlCommandBuilder(sda);
        DataSet ds = new DataSet();
        sda.Fill(ds,"table_1");
      GridView1.DataSource = ds.Tables[0];//[/color]这一句报错,无法找到表0
       
        DataRow row = ds.Tables[0].Rows[0];
        row["xm"] = DropDownList4.SelectedValue;
        row["qq"] = TextBox2.Text;
        row["dz"] = TextBox3.Text;
        row["phone"] = TextBox4.Text;
        row["sex"] = DropDownList3.SelectedValue;
        row["number"] = TextBox5.Text;
        ds.Tables[0].Rows.Add(row);
        sda.Update(ds);
五大找到边0,但是已经Fill了啊
        
        
    }

解决方案 »

  1.   

    GridView1.DataSource = ds.Tables["table_1"];//[/color]这一句报错,无法找到表0另外你既然是update,怎么会用SqlDataAdapter ?到底是查询还是更新???
      

  2.   

      DataRow row = ds.Tables[0];//是这一句报错,无法找到表0
      

  3.   

    你应该先修改,然后Select出来数据后,绑定到GridView中。
      

  4.   

    //修改信息代码
      protected void Button3_Click(object sender, EventArgs e)
      {  SqlConnection sql = Class1.connection();
      sql.Open();
      string str = string.Format("update table_1 set qq='{0}',dz='{1}',phone='{2}',sex='{3}',number='{4}'where xm='{5}'",DropDownList4.SelectedValue, TextBox2.Text, TextBox3.Text, TextBox4.Text, DropDownList3.SelectedValue, TextBox5.Text);
       string str2 = string.Format("select * from table_1 where xm='{0}'",TextBox5.Text.Trim());
      SqlDataAdapter sda = new SqlDataAdapter(str,sql);
      SqlDataAdapter sda2 = new SqlDataAdapter(str2,sql);
      SqlCommandBuilder scb = new SqlCommandBuilder(sda);
     SqlCommandBuilder scb2 = new SqlCommandBuilder(sda2);
      DataSet ds = new DataSet();
     DataSet ds2 = new DataSet();
      sda.Fill(ds,"table_1");
      sda2.Fill(ds2);
      GridView1.DataSource = ds2.Tables[0];
       
      DataRow row = ds.Tables[0].Rows[0];
      row["xm"] = DropDownList4.SelectedValue;
      row["qq"] = TextBox2.Text;
      row["dz"] = TextBox3.Text;
      row["phone"] = TextBox4.Text;
      row["sex"] = DropDownList3.SelectedValue;
      row["number"] = TextBox5.Text;
      ds.Tables[0].Rows.Add(row);
      sda.Update(ds);
      }
      

  5.   

    帮你纠正一个问题吧,在执行update ,insert,delete 时,不需要用SqlDataAdapter,直接用SqlCommand的EndExecuteNonQuery方法就可以了,因为update ,insert,delete命令 返回的是受影响的行数,比如你执行insert命令,如果成功了返回是1,再比如执行update,如果有1条数据被更新了,则返回1,就是有几行数据被更新就返回几。
    在执行Select命令是才需要用SqlDataAdapter,这个是一个适配器,可以把查询到的数据fill到DataTable中活DataSet中。
    你上面的功能应该是根据xm修改table_1中数据,然后并把所有的数据返回到GridView1中。
      

  6.   

    参考代码
    protected void Button3_Click(object sender, EventArgs e)
            {            SqlConnection sql = Class1.connection();
                sql.Open();
                string str = string.Format("update table_1 set qq='{0}',dz='{1}',phone='{2}',sex='{3}',number='{4}'where xm='{5}'",DropDownList4.SelectedValue, TextBox2.Text, TextBox3.Text, TextBox4.Text, DropDownList3.SelectedValue, TextBox5.Text);
        
                SqlCommand cmd=new SqlCommand();
                cmd.CommandText=str;
                cmd.Connection =sql;
                int result= cmd.ExecuteNonQuery();//执行命令,当前命令执行完以后可到数据库中查看是否有更新
                if(result>0)
                {
                    MessageBox.Show("修改成功。");
                }
                else
                {
                     MessageBox.Show("修改失败。");
                }            string strselect="select * from table_1";
                SqlDataAdapter sda = new SqlDataAdapter(strselect,sql);
                DataSet ds = new DataSet();
                sda.Fill(ds,"table_1");
                sql.Close();//记住使用完以后要关闭
                GridView1.DataSource = ds.Tables[0];
                GridView1.DataBind();
            }
      

  7.   

    以上代码设下断点,发现result=0还是没有更新成功,不管怎样,非常谢谢你
      

  8.   

    #8楼的方法肯定没问题,问题应该出在TextBox5.Text与字段xm不能匹配