如何使用需要参数的存储过程从数据库返回单个值 [英] How do I return a single value from the database using a stored procedure that require parameters

查看:72
本文介绍了如何使用需要参数的存储过程从数据库返回单个值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好。我想从数据库中返回一个值。我想在文本框中显示检索到的值,其中存储过程参数来自gridrow的选定索引。由于某种原因,它没有显示



我尝试过:



Good day guys. I want to return a single value from the database. I want to display the retrieved value in a textbox where the stored procedure parameter comes from the selected index of a gridrow. For some reason it is not showing

What I have tried:

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;
            }

        }





我的存储过程是一个简单的,它看起来像这样





My stored procedure is a simple one and it looks like this

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

推荐答案

ALTER PROCEDURE [dbo]。[spLoadDevelopment]

- 在这里添加存储过程的参数

@DocketName varchar(50)

@Development varchar(50)OUTPUT

AS

BEGIN

- SET添加了NOCOUNT ON以防止额外的结果集

- 干扰SELECT语句。

设置NOCOUNT ON;



- 在此处插入程序声明

SELECT @Development = [开发]

来自DOCKET

WHERE DocketName = @DocketN ame

END
ALTER PROCEDURE [dbo].[spLoadDevelopment]
-- Add the parameters for the stored procedure here
@DocketName varchar(50)
@Development varchar(50) OUTPUT
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 = [Development]
FROM DOCKET
WHERE DocketName = @DocketName
END


这篇关于如何使用需要参数的存储过程从数据库返回单个值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆