当Request.Query字符串是整数

时间:2017-02-11 23:10:21

标签: asp.net

我想做的事情似乎很简单,但我正在努力寻找可用的示例代码。我的应用程序是在ASP.NET VB中。我试图将选定的记录从表传递到新页面,然后让SQL查询选择记录,以便我可以填充该字段进行编辑。到目前为止,我将记录索引ID传递给第二页。我可以在标签字段中显示仅用于测试。但我遇到的问题是SQL数据源选择命令。如果我将记录号4添加到默认值,下面是有效的代码。但是我需要用request.querystring替换Default值。(“VenueID”)。我的大多数尝试都显示错误,即SQL请求无法从字符串转换为Integer。这是我的代码。

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Admn-VenueEdit.aspx.vb" Inherits="Admn_VenueEdit" %>

 <!DOCTYPE html>

 <html xmlns="http://www.w3.org/1999/xhtml">



 <head runat="server">
 <title></title>
 </head>
 <body>



 <Form runat="server">
    <%      
        Dim QueryID As String
        QueryID = Request.QueryString("VenueID")
        Dim URLQueryID
        URLQueryID = Convert.ToInt64(QueryID)
        'esponse.Write(QueryID)
        'Dim VenueQueryString As String
        'VenueQueryString = "SELECT * FROM [tblVenue] Where [ID] = " +        Request.QueryString("VenueID")
    %>         

 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" DataSourceID="SqlDataSource1" DataKeyNames="Id" Width="180">
    <Columns>
        <asp:TemplateField HeaderText="Destination" ItemStyle-Width="80">
            <ItemTemplate>
                <asp:TextBox ID="txtName" runat="server" Text='<%# Eval("Destintion") %>' />
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Company" ItemStyle-Width="100">
            <ItemTemplate>
                <asp:TextBox ID="txtCountry" runat="server" Text='<%# Eval("Company") %>' />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" SelectCommand="SELECT * FROM [tblVenue] Where [ID] = @VenueID">
     <SelectParameters>
          <asp:SessionParameter 
              Name="VenueID" 
              SessionField="VenueID" 
              DefaultValue="4"
              />
     </SelectParameters>
 </asp:SqlDataSource>
    </Form> 

 </body>

1 个答案:

答案 0 :(得分:0)

问题在于:

<asp:SessionParameter 
          Name="VenueID" 
          SessionField="VenueID" 
          DefaultValue="4"
          />

它总是与数字4一起工作。我的查询字符串是什么并不重要。 但是,如果您需要在数据源中使用查询字符串,那么在sqldataSource可视化配置中有一种简单的方法可以执行此操作。当您进行设置时,在设置连接字符串后,点击下一步按钮,在下一页中您有一个按钮其中点击进入此页面:

Set query string for sql data source

完成所有操作后,单击“添加”按钮并靠近后退。 您的数据源必须是这样的:

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:FinalDentistConnectionString1 %>" SelectCommand="SELECT * FROM [ArticleComments] WHERE ([Id] = @Id)">
        <SelectParameters>
            <asp:QueryStringParameter Name="Id" QueryStringField="Id" Type="Int32" />
        </SelectParameters>
    </asp:SqlDataSource>