0

私はSQLサーバーでクエリをテストし、100%動作していますが、私のページでは動作しません!! これは私のクエリです

UPDATE Employee SET 
       Name='jojo',
       Age=19,
       GenderID=2,
       CountryID=5,
       Mobile=0917021092 
WHERE EmployeeID=10

これは私のコード

protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {            
            string s = GridView1.DataKeys[e.RowIndex].Value.ToString();

            Label id = (Label)GridView1.Rows[e.RowIndex].FindControl("lblEditID");   
            Label EmployeeID = (Label)GridView1.Rows[e.RowIndex].FindControl("lblEmployeeID");
            TextBox name = (TextBox)GridView1.Rows[e.RowIndex].FindControl("txtEditName");
            TextBox age = (TextBox)GridView1.Rows[e.RowIndex].FindControl("txtEditAge");
            DropDownList gender = (DropDownList)GridView1.Rows[e.RowIndex].FindControl("DropGender");
            DropDownList country = (DropDownList)GridView1.Rows[e.RowIndex].FindControl("DropCountry");
            TextBox mobile = (TextBox)GridView1.Rows[e.RowIndex].FindControl("txtEditMobile");

            string stringconnectiong = ConfigurationManager.ConnectionStrings["Employee_TestConnectionString"].ConnectionString;
            string sql = "update Employee set Name=@Name, Age=@Age,GenderID=@GenderID , CountryID=@CountryID , Mobile=@Mobile where EmployeeID=@EmployeeID  AND ID=@ID";

            SqlConnection con = new SqlConnection(stringconnectiong);

          try
          {
            con.Open();
            SqlCommand cmd = new SqlCommand();
            cmd.Parameters.AddWithValue("@EmployeeID", EmployeeID.Text);
            cmd.Parameters.AddWithValue("@ID", id.Text);
            cmd.Parameters.AddWithValue("@Name", name.Text);
            cmd.Parameters.AddWithValue("@Age", age.Text);
            cmd.Parameters.AddWithValue("@GenderID", gender.SelectedValue);
            cmd.Parameters.AddWithValue("@CountryID", country.SelectedValue);
            cmd.Parameters.AddWithValue("@Mobile", mobile.Text);
            cmd.CommandType = CommandType.Text;
            cmd.CommandText = sql;
            cmd.Connection = con;
            cmd.ExecuteNonQuery();
            SqlDataAdapter dr = new SqlDataAdapter(cmd);
            DataSet ds = new DataSet();
            dr.Fill(ds);
            GridView1.DataSource = ds;
            GridView1.EditIndex = -1;
            BindGridview();

        }

        catch (System.Data.SqlClient.SqlException ex)
        {
            string msg = "Error Updating ";
            msg += ex.Message;
            throw new Exception(msg);
        }

        finally
        {
            con.Close();
            con.Dispose();
            BindGridview();
        }

    }
4

1 に答える 1

0

データソースはデータセットであるため、DataMember プロパティを介して使用しているデータセット内のデータ テーブルを指定する必要があります。または、データ ソースとしてデータ テーブルを使用します。

データセットの行を次のように置き換えます。

DataTable dt = new DataTable();
dr.Fill(dt);
GridView1.DataSource = dt;

また、GridView1_RowUpdatedイベントをご利用ください。GridView1_RowUpdatingイベントはテーブルが更新される前に発生するため、パラメーター値はまだ更新されていません。

于 2012-07-08T14:25:21.077 に答える