从SQL Query填充asp标签

时间:2011-07-18 20:35:48

标签: asp.net sql-server-2005

我编写了查询数据库的代码,但现在不知道如何将文本放入我的两个标签'txtTitle'& 'txtBody'

protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
        {
            SqlConnection thisConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["blcDocumentationConnectionString"].ConnectionString);

            // Create Command Object
            SqlCommand nonqueryCommand = thisConnection.CreateCommand();

            pnlNew.Visible = false;
            pnlView.Visible = true;

            try
            {
                // Open Connection
                thisConnection.Open();

                // Create SELECT statement with named parms
                nonqueryCommand.CommandText = "SELECT DocumentTitle,DocumentBody FROM tblDocument WHERE DocumentID = @DocumentID"; 

                // Add parms to Command parms collection
                nonqueryCommand.Parameters.AddWithValue("@DocumentID", GridView1.SelectedValue);

                // Execute query statement
                nonqueryCommand.ExecuteNonQuery();

                // Populate Labels
                GridViewRow row = GridView1.SelectedRow;
                lblTitle.Text = row.Cells[1].Text;
                lblBody.Text = row.Cells[2].Text;
            }

            finally
            {
                // Close Connection
                thisConnection.Close();
            }
        }

<asp:Panel ID="pnlView" runat="server" Visible="False" CssClass="pnlView">
                <h1 style="background-color: #CCE6FF">
                    <asp:Label ID="lblTitle" runat="server" Text="Label"></asp:Label></h1>
                <p>
                    <asp:Label ID="lblBody" runat="server" Text="Label"></asp:Label></p>
                <p style="background-color: #EFEFEF">
                    <asp:Button ID="btnEdit" runat="server" Text="Edit This Document" OnClick="btnEdit_Click" />&nbsp;or
                    cancel</p>
            </asp:Panel>

2 个答案:

答案 0 :(得分:0)

您的代码显示您有一个填充了文档ID的表(我假设您已经在代码的其他部分正确绑定了这个)

您正确使用了SelectedIndexChanged事件,但为什么要在其中执行另一个查询?如果有意执行查询,为什么要将标签绑定到旧数据? row.cells []。value保存旧信息,而不是您重新查询的信息。如果您需要重新查询的信息,请直接从结果集中获取该信息。此外,除非您更改nonqueryCommand.ExecuteNonQuery();否则该结果集将不返回任何内容。 to nonqueryCommand.ExecuteDataSet();

答案 1 :(得分:0)

重申用户:rkw上面提到的内容。 ExecuteNonQuery不会从数据库中获取任何数据。您需要使用DataReader(http://msdn.microsoft.com/en-us/library/haa3afyz.aspx)或使用ExecuteDataset并将信息放入DataSet中,然后从中读取。当您说ExecuteNonQuery时,您基本上是在告诉SQL服务器执行命令但不期望从SQL Server返回任何数据。