0

そのため、プロジェクトでは、データベースから値を取得し、編集ボタンをクリックしてプレースホルダーに保存しようとしています。これを機能させるために多くのことを試みましたが、最初の行の最初の列の値のみを返します。編集するために選択した行から値を返したいと思っています。これは、これまでのコードビハインドです。

protected void grdEditPersonnel_RowCommand(object sender, GridViewCommandEventArgs e)
{
    if (e.CommandName == "Edit")
    {
        //sets the value of the row selected for possible use??
        int index = Convert.ToInt32(e.CommandArgument);
        GridViewRow selectedRow = grdEditPersonnel.Rows[index];

        try
        {

            OleDbConnection connection = new OleDbConnection(ConfigurationManager.ConnectionStrings["RiskManager_DBConnectionString"].ConnectionString);
            OleDbCommand command = new OleDbCommand("SELECT [ID] FROM [tblProjects]", connection);

            connection.Open();
            OleDbDataReader reader = command.ExecuteReader(CommandBehavior.SingleRow);

            while (reader.Read())
            {
                //sends the value of the ID to the Project ID Place Holder
                Session["ProjIDPH"] = reader.IsDBNull(reader.GetOrdinal("ID")) ? null :
                                          reader["ID"].ToString();
            }

            reader.Close();

            //Redirects user to the Add Project page
            Response.Redirect("frmProjects.aspx");
        }
        catch
        {

        }
    }
}
4

1 に答える 1

0

グリッドビューから収集しているインデックス値を使用していません (少なくとも、とにかく見ることはできません)。コマンドテキストにこのようなものを使用して、正しい値を選択できます。

        "SELECT ID FROM tblProjects WHERE ID = " & GridView.SelectedDataKey.Value.ToString

後で編集ボタンに必要な値を取得するために、グリッドビューの選択されたインデックス変更イベントハンドラーでこれを行います。次に、編集ボタンが押されると、その値を使用してデータベースからデータを取得します。

うまくいけば、私は要点を完全に見逃していません。

于 2013-06-19T00:32:51.613 に答える