Заполните метки asp из SQL-запроса - PullRequest
1 голос
/ 19 июля 2011

Я написал код для запроса к базе данных, но теперь не знаю, как получить текст в мои две метки '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 голосов
/ 19 июля 2011

Повторение того, что Пользователь: rkw, упомянутый выше. ExecuteNonQuery не получит никаких данных из базы данных. Вам нужно использовать либо DataReader (http://msdn.microsoft.com/en-us/library/haa3afyz.aspx), либо использовать ExecuteDataset и поместить информацию в DataSet, а затем прочитать из нее. Когда вы говорите «ExecuteNonQuery», вы в основном говорите SQL-серверу выполнять команды, но не ожидаете никаких данных от SQL Server.

0 голосов
/ 19 июля 2011

Ваш код показывает, что у вас есть таблица, заполненная идентификаторами документов (я предполагаю, что вы уже правильно связали это с какой-то другой частью вашего кода)

Вы правильно использовали событие SelectedIndexChanged, но почему вы выполняете другой запрос внутри? Если выполнение запроса является преднамеренным, почему вы привязываете свои метки к старым данным? row.cells []. value содержит старую информацию, а не информацию, которую вы запрашивали. Если вам нужна запрашиваемая информация, получите эту информацию непосредственно из набора результатов. Кроме того, этот набор результатов не вернет ничего, если вы не измените nonqueryCommand.ExecuteNonQuery (); to nonqueryCommand.ExecuteDataSet ();

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...