使用OleDB从数据库中检索行

时间:2013-06-18 21:38:47

标签: c# asp.net sql

因此,对于一个项目,我试图从数据库中检索一个值,并在单击编辑按钮时将其存储在占位符中。我已经尝试了很多东西来使它工作,但它只返回第一行第一列的值。我希望它从我选择编辑的行中返回值。这就是我到目前为止在代码中所拥有的。

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
        {

        }
    }
}

1 个答案:

答案 0 :(得分:0)

您没有使用从gridview收集的索引值(至少不是我能看到的)。您可以使用类似这样的命令文本来选择正确的值。

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

我将在gridview的选定索引更改事件处理程序中执行此操作,以便稍后检索编辑按钮所需的值。然后,当按下编辑按钮时,使用该值从数据库中检索数据。

希望我完全没有错过这一点。