2017-02-11 37 views
0

我想做的事情看起來很簡單,但我一直在努力尋找示例代碼來工作。我的應用程序在ASP.NET VB中。我試圖將選定的記錄從表中傳遞到新頁面,然後讓SQL查詢選擇記錄,以便填充字段進行編輯。到目前爲止,我將記錄索引ID傳遞給第二頁。我可以在標籤字段中僅顯示測試。但是我遇到了一些對SQL數據源選擇命令有影響的問題。如果我將記錄編號4添加到默認值,以下是可用的代碼。但我需要用一個request.querystring。(「VenueID」)替換Default值。我的大多數嘗試都顯示一個錯誤,即SQL請求無法從字符串轉換爲Integer。這是我的代碼。當Request.Query字符串是一個整數時,將Request.QueryString傳遞給SelectParameters DefaultValue

<%@ 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> 

回答

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>