如何使用存储过程绑定数据列表中的数据 [英] How to bind data in datalist using store procedure

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

问题描述

我正在使用母版页创建网页.在我的母版页中,我编写了代码以绑定数据列表中的数据.数据列表具有页面链接,因此我正在使用内联代码来绑定数据库中的数据.我正在使用存储过程来选择数据.现在,我的代码中出现错误: [System.Data.SqlClient.SqlException] = {过程或函数"GetLinkName"期望参数"@pagename",但未提供."}
我选择数据的存储过程是:
更改过程[dbo].[GetLinkName]
@pagename nvarchar(20),
@pagelinks nvarchar(20)
AS
选择页面名称,来自AdminLinks的页面链接
我绑定数据的代码是:

I am creating web page using masterpage.In my master page i have written code to bind data in datalist.datalist have pagelinks,so i am using inline code to bind data from database.I am using store procedure to select data.Now i am getting error in my code that: [System.Data.SqlClient.SqlException] = {"Procedure or function ''GetLinkName'' expects parameter ''@pagename'', which was not supplied."}
My store procedure to select data is:
ALTER PROCEDURE [dbo].[GetLinkName]
@pagename nvarchar(20),
@pagelinks nvarchar(20)
AS
SELECT pagename,pagelinks FROM AdminLinks
My code to bind data is:

public void BindList()
    {
        SqlCommand cmd = new SqlCommand();
        cmd.Connection = sqlcon;
        cmd.CommandText = "GetLinkName";
        cmd.CommandType = CommandType.StoredProcedure;
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        DataSet ds = new DataSet();
        da.Fill(ds);
        MyList.DataSource = ds;
        MyList.DataBind();
    }


我正在使用以下超链接代码:


I am using Hyperlink code as:

<br />
<asp:hyperlink id="HyperLink1" runat="server" cssclass="left_links" navigateurl="<%# DataBinder.Eval(Container.DataItem, "pagename")%>" text="<%# DataBinder.Eval(Container.DataItem, "pagelinks") %>" xmlns:asp="#unknown"></asp:hyperlink><br />


我试图以两种方式进行绑定,而不同时使用"@pagelink"和"pagelink".
请在错误的地方帮帮我.


i have tried to bind in both way without using "@pagelink" and "pagelink" also.
please help me where i am doing mistake.

推荐答案

很明显,您存储的proc具有两个参数,@pagename和@pagelinks,这两个参数没有被使用过.在调用da.Fill之前提供.

另外,在您的DataBind中,超链接的列名是页面名而不是@pagename.
It''s quite obvious, your stored proc takes two parameters, @pagename and @pagelinks, which have not been supplied before the call to da.Fill.

Also, in your DataBind for the hyperlink the column name is pagename not @pagename.


您需要添加参数才能执行SP.
在下面找到代码示例.
You need to add the parameters to execute SP.
Find the code sample below.
SqlCommand cmd = new SqlCommand();<br />
            cmd.Connection = sqlcon;<br />
            cmd.CommandText = "GetLinkName";<br />
            cmd.CommandType = CommandType.StoredProcedure;<br />
<br />
            #region Parameters<br />
            SqlParameter p = new SqlParameter();<br />
            p.ParameterName = "@pagename";<br />
            p.Value = "something"; // Specify parameter value<br />
            p.SqlDbType = SqlDbType.NVarChar;<br />
            cmd.Parameters.Add(p);<br />
<br />
            p = new SqlParameter();<br />
            p.ParameterName = "@pagelinks";<br />
            p.Value = "something"; // Specify parameter value<br />
            p.SqlDbType = SqlDbType.NVarChar;<br />
            cmd.Parameters.Add(p);            <br />
<br />
            #endregion<br />
<br />
            SqlDataAdapter da = new SqlDataAdapter(cmd);<br />
            DataSet ds = new DataSet();<br />
            da.Fill(ds);<br />
            MyList.DataSource = ds;<br />
            MyList.DataBind();


这篇关于如何使用存储过程绑定数据列表中的数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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