Мое приложение состоит из GridView, который содержит выпадающий список и . Что вы пытаетесь: когда пользователь выбирает элемент из раскрывающегося списка, элемент управления текстовым полем заполняется описанием элемента. Я в состоянии выполнить задачу с помощью следующего кода:Хранимая процедура не отображает данные
Protected Sub ddlStartPartDescrip_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs)
Dim ddlStartPartDescrip As String = DirectCast(gvPartDetailDescription.Controls(0).Controls(0).FindControl("ddlStartPartDescrip"), DropDownList).Text
Dim myConnectionStringIII As String = ConfigurationManager.ConnectionStrings("ShipperNotificationConnectionString").ConnectionString.ToString
Dim myConnectionIII As New SqlConnection(myConnectionStringIII)
myConnectionIII.Open()
Dim mySQLQueryIII As String = "SELECT Part_Name, Part_Desc FROM Part WHERE Part_Name='" + ddlStartPartDescrip.ToString() + "'" + "ORDER BY Part_Name"
Dim myCommandIII As New SqlCommand(mySQLQueryIII, myConnectionIII)
Dim myReaderIII As SqlDataReader = myCommandIII.ExecuteReader()
While (myReaderIII.Read())
'the orginal code
Dim row As GridViewRow = DirectCast(DirectCast(sender, DropDownList).NamingContainer, GridViewRow)
Dim txtStartPartDescripNum As TextBox = DirectCast(row.FindControl("txtStartPartDescripNum"), TextBox)
txtStartPartDescripNum.Text = myReaderIII.GetValue(1).ToString
End While
myReaderIII.Close()
myConnectionIII.Close()
End Sub
... однако, я пытаюсь выполнить ту же задачу с помощью хранимой процедуры. Моя проблема в том, что когда элемент списка выбран из раскрывающегося списка, элемент управления текстовым полем не содержит описания.
Это моя хранимая процедура:
USE [DatabaseName]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[Part_Name_Descript]
(
@ddlStartPartDescrip varchar(250)
)
AS
Begin
SELECT Part_Name, Part_Desc FROM Part WHERE Part_Name='" + @ddlStartPartDescrip + "'
END
Это код позади, который помещается внутри ddlStartPartDescrip_SelectedIndexChanged как я с не хранимой процедуры подхода:
Dim con As New SqlConnection(GetConnectionString())
'open connection
con.Open()
Dim cmd As New SqlCommand("Part_Name_Descript", con)
cmd.CommandType = CommandType.StoredProcedure
Dim p1 As New SqlParameter("@ddlStartPartDescrip", ddlStartPartDescrip)
cmd.Parameters.Add(p1)
Dim rd As SqlDataReader = cmd.ExecuteReader()
While (rd.Read())
Dim row As GridViewRow = DirectCast(DirectCast(sender, DropDownList).NamingContainer, GridViewRow)
Dim txtStartPartDescripNum As TextBox = DirectCast(row.FindControl("txtStartPartDescripNum"), TextBox)
txtStartPartDescripNum.Text = rd.GetValue(1).ToString
End While
con.Close()
... Могу ли я получить некоторую помощь, пожалуйста, о том, что я пропущу/делаю неправильно? Заранее спасибо
Спасибо за объяснение и исправление. – user1724708