Как вернуть одно значение из базы данных с помощью хранимой процедуры, требующей параметров
Добрый день, ребята. Я хочу вернуть одно значение из базы данных. Я хочу отобразить полученное значение в текстовом поле, где параметр хранимой процедуры берется из выбранного индекса сетки. По какой-то причине он не показывается
Что я уже пробовал:
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { //string txtSession = " "; if (Session["IDNumber"] == null) { } else { string Id = Session["IDNumber"].ToString(); bll = new BusinessLogicLayer(); try { doc = new Docket(); } catch (Exception) { } } } protected void grdInvolvedDockets_SelectedIndexChanged(object sender, EventArgs e) { doc = new Docket(); bll = new BusinessLogicLayer(); Session["DocketName"] = grdInvolvedDockets.SelectedRow.Cells[1].Text; doc.DocketName = Session["DocketName"].ToString(); bind(doc); } public void bind(Docket doc) { doc = new Docket(); using (SqlConnection con = new SqlConnection("Data Source=KEVIN-PC;Integrated Security=true;Initial Catalog=E-Docket1")) { con.Open(); SqlCommand cmd = new SqlCommand("spLoadDevelopment", con); string result = Session["DocketName"].ToString(); doc.DocketName = result; SqlParameter param = new SqlParameter("@DocketName", doc.DocketName); cmd.Parameters.AddWithValue("@DocketName", doc.DocketName.ToString()); string new1; new1 = cmd.ExecuteScalar().ToString(); //lblDetails.Text = result; } }
Моя хранимая процедура очень проста и выглядит примерно так
ALTER PROCEDURE [dbo].[spLoadDevelopment] -- Add the parameters for the stored procedure here @DocketName varchar(50) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; -- Insert statements for procedure here SELECT [Development] FROM DOCKET WHERE DocketName = @DocketName END
PIEBALDconsult
Зачем для этого использовать хранимую процедуру? Встроенная табличнозначная функция будет делать то же самое и быть более гибкой.
KevinClaassens
Не могли бы вы быть в состоянии показать мне, как это делается? Мне нужен был способ отображения некоторого текста в зависимости от того, какой столбец выбран, и вот как далеко я зашел
Richard MacCutchan
Просто вставьте оператор SELECT в свой код. На самом деле нет никакого смысла в хранимой процедуре для такой простой команды.
Karthik_Mahalingam
держите точку останова и проверьте, где она идет не так.
в чем ценность "док.DocketName"
Richard Deeming
Возможно, это как-то связано с тем, что после сохранения значения, возвращаемого хранимой процедурой, в локальной переменной new1
вы выбрасываете эту переменную , ничего с ней не делая!
Если вы хотите отобразить значение, возвращенное из хранимой процедуры, то вам нужно будет что-то с ним сделать.