簡體   English   中英

設置存儲過程的參數

[英]Setting parameter for stored procedure

我已經設置了一個存儲過程,該存儲過程使用一個輸入參數( @QuestionID )檢索單個記錄(記錄來自多個數據表的元素)。

創建了一個數據讀取器,並使用這些值填充我的網頁上的值。

我不知道該怎么辦,是要設置輸入參數的值,而不是單擊鏈接從列表(在引用頁面上)中打開“詳細信息”頁面的人。

在引薦頁面上,有人單擊詳細記錄並設置了QuestionID

<asp:GridView ID="GridView1" runat="server" Caption="Submitted Questions" AllowSorting="True" 
     CaptionAlign="Left" EmptyDataText="You have not submitted any Questions." PageSize="5"
     AutoGenerateColumns="false">
    <Columns>
        <asp:TemplateField>
            <ItemTemplate>
                <asp:Label ID="QuestionID" runat="server" Text='<%# Eval("QuestionID") %>' />
            </ItemTemplate>
        </asp:TemplateField>
        <asp:BoundField DataField="KeyObjective" HeaderText="Key Objective" ItemStyle-Width="150" />
        <asp:BoundField DataField="SubmitDate" HeaderText="Submitted Date" ItemStyle-Width="50" />
        <asp:TemplateField>
            <ItemTemplate>
                <asp:LinkButton ID="Details" runat="server" Text="View Details" PostBackUrl='<%# "~/Submit/Submit_Detail.aspx?Id=" + Eval("QuestionID")  %>'></asp:LinkButton>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField>
            <ItemTemplate>
                <asp:LinkButton ID="Clone" runat="server" Text="Create Clone" PostBackUrl='<%# "~/Submit/Submit_Clone.aspx?Id=" + Eval("QuestionID")  %>'></asp:LinkButton>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

目前已硬編碼為@QuestionID值為1的DataReader控件,我需要獲取它以接受從引用頁面發送的querystring值:

string sConstr = ConfigurationManager.ConnectionStrings["CS1"].ConnectionString;
SqlConnection Conn = new SqlConnection(sConstr);

using (Conn)
{
    SqlCommand command = new SqlCommand("QuestionDetail", Conn);
    command.CommandType = CommandType.StoredProcedure;

    command.Parameters.Add(new SqlParameter("@QuestionID", SqlDbType.BigInt));
    command.Parameters["@QuestionID"].Value = 1;

    Conn.Open();
    SqlDataReader reader = command.ExecuteReader();

    while (reader.Read())
        txt_author.Text = reader["Author"].ToString();

    reader.Close();
}

假定它與LinkBut​​tons中提供的URL匹配(即querystring參數為“ Id”),那么您應該能夠從Request對象中讀取它:

command.Parameters["@QuestionID"].Value = Convert.ToInt32(Request["Id"]);

如果您的參數有所不同,則只需相應地進行調整。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM