2012-10-18 34 views
0

我在將我的下拉列表與兩列連接時無法拉動sql數據。我想結合姓氏(名字)+名字(fName),並將這些名稱上的數據。這是我到目前爲止。Sql concatenate dropdownlist

<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" 
     DataSourceID="SqlDataSource3" DataTextField="lName" DataValueField="lName" 
     AppendDataBoundItems="True" 
     onselectedindexchanged="DropDownList1_SelectedIndexChanged"> 
     <asp:ListItem Value="Select">Select</asp:ListItem> 
    </asp:DropDownList> 

    <asp:SqlDataSource ID="SqlDataSource3" runat="server" 
     ConnectionString="<%$ ConnectionStrings:TestDBConnectionString1 %>" 
     SelectCommand="SELECT (lName + fName) AS zName FROM CoaTest"></asp:SqlDataSource> 

然後,我有所有的Databounds中有一個FormView控件,它的SQL連接看起來是這樣的:

<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
     ConnectionString="<%$ ConnectionStrings:TestDBConnectionString1 %>" 
     DeleteCommand="DELETE FROM [CoaTest] WHERE [Id] = @Id" 
     SelectCommand="SELECT Id, fName, lName, agency, title, gen, hired, AppS, 
     course, Location, SessNum, SDate, EDate, Hours, SitUps, pushUps, rTime, 
     Grade FROM CoaTest WHERE (lName = @lName)" 


     UpdateCommand="UPDATE [CoaTest] SET [fName] = @fName, [lName] = @lName, [agency] = @agency, [title] = @title, [gen] = @gen, [hired] = @hired, [AppS] = @Apps, [course] = @course, [Location] = @Location, [SDate] = @SDate, [EDate] = @EDate, [Hours] = @Hours WHERE [Id] = @Id"> 
     <DeleteParameters> 
      <asp:Parameter Name="Id" Type="Int32" /> 
     </DeleteParameters> 
     <SelectParameters> 
      <asp:ControlParameter ControlID="DropDownList1" Name="lName" 
       PropertyName="SelectedValue" Type="String" /> 

     </SelectParameters> 
     <UpdateParameters> 
      <asp:Parameter Name="fName" Type="String" /> 
      <asp:Parameter Name="lName" Type="String" /> 
      <asp:Parameter Name="Agency" Type="String" /> 
      <asp:Parameter Name="title" /> 
      <asp:Parameter Name="gen" /> 
      <asp:Parameter Name="hired" /> 
      <asp:Parameter Name="Apps" /> 
      <asp:Parameter Name="course" /> 
      <asp:Parameter Name="Location" /> 
      <asp:Parameter Name="SDate" /> 
      <asp:Parameter Name="EDate" /> 
      <asp:Parameter Name="Hours" /> 
      <asp:Parameter Name="Id" Type="Int32" /> 
     </UpdateParameters> 
    </asp:SqlDataSource> 

這工作,如果我只是把它拉按姓氏(L-NAME),但是當我嘗試連接它不會從formview中提取數據。先謝謝你!!

回答

1

將下拉選擇命令更改爲SELECT Id, (lName + fName) AS zName FROM CoaTest,將下拉的DataValueField值更改爲Id並通過Id而不是按名稱選擇數據到FormView

+0

嗨Yuriy感謝您的快速響應。我隨着你描述的變化而去,但現在它通過數字而不是姓氏/名字來拉動人們。 – vadim

+0

@vadim將'DataTextField'改爲'zName' –

+0

我認爲我們快到了。當選擇名稱'轉換nvarchar值'BaileyJessica'轉換爲數據類型int時轉換失敗'。 – vadim

0

我覺得DataValueFieldDataTextField性能應爲這樣:

  • datavaluefield ="zname",因爲對於串連別名命名爲zname沒有LNAME

而且你不凸出或顯示數據源查詢中的lname表格列