[英]How to retrieve data from the database to the second table after selecting the user in the first table?
我的數據庫中有三個表,如下所示:
員工表:用戶名,名稱,職位,Division碼
課程表:CourseID,CoursName,GroupID
Employee_Course表:用戶名,CourseID(每個表中的第一個鍵是主鍵)
我創建了兩個ListViews。 一個用於從Employee表中檢索雇員信息,第二個用於在第一個ListView中顯示所選雇員的已修課程(從Employee_Course表中)。
對於第一個表,一切工作正常並且很好,但是對於第二個表,我無法在第一個表中檢索所選員工的已修課程。
那我該怎么辦呢?
我的ASP.NET代碼:
<asp:ListView ID="ListView1" runat="server" DataKeyNames="Username"
DataSourceID="SqlDataSource1" InsertItemPosition="LastItem">
<EditItemTemplate>
<tr style="">
<td>
<asp:ImageButton ID="UpdateButton" ImageUrl="images/update4.png" Width="20px" runat="server" CommandName="Update" />
<asp:ImageButton ID="CancelButton" ImageUrl="images/cancel.png" Width="20px" runat="server" CommandName="Cancel" />
</td>
<td>
<asp:TextBox ID="NameTextBox" runat="server" Text='<%# Bind("Name") %>' />
</td>
<td>
<asp:Label ID="UsernameLabel1" runat="server" Text='<%# Eval("Username") %>' />
</td>
<td>
<asp:TextBox ID="JobTitleTextBox" runat="server"
Text='<%# Bind("JobTitle") %>' />
</td>
<td>
<asp:TextBox ID="BadgeNoTextBox" runat="server" Text='<%# Bind("BadgeNo") %>' />
</td>
<td>
<asp:TextBox ID="EmpOrgTypeTextBox" runat="server"
Text='<%# Bind("EmpOrgType") %>' />
</td>
<td>
<asp:DropDownList ID="DropDownList1" runat="server" SelectedValue='<%# Bind("DivisionCode") %>'
DataSourceID="SqlDataSource1" DataTextField="DivisionName"
DataValueField="SapCode">
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:testConnectionString %>"
DeleteCommand="DELETE FROM [Divisions] WHERE [SapCode] = @SapCode"
InsertCommand="INSERT INTO [Divisions] ([SapCode], [DivisionName]) VALUES (@SapCode, @DivisionName)"
SelectCommand="SELECT * FROM [Divisions]"
UpdateCommand="UPDATE [Divisions] SET [DivisionName] = @DivisionName WHERE [SapCode] = @SapCode">
<DeleteParameters>
<asp:Parameter Name="SapCode" Type="Double" />
</DeleteParameters>
<InsertParameters>
<asp:Parameter Name="SapCode" Type="Double" />
<asp:Parameter Name="DivisionName" Type="String" />
</InsertParameters>
<UpdateParameters>
<asp:Parameter Name="DivisionName" Type="String" />
<asp:Parameter Name="SapCode" Type="Double" />
</UpdateParameters>
</asp:SqlDataSource>
</td>
</tr>
</EditItemTemplate>
<EmptyDataTemplate>
<table runat="server" style="">
<tr>
<td>
No data was returned.</td>
</tr>
</table>
</EmptyDataTemplate>
</asp:ListView>
<asp:SqlDataSource ID="SqlDataSource2" runat="server"
ConnectionString="<%$ ConnectionStrings:testConnectionString %>"
DeleteCommand="DELETE FROM [employee_courses] WHERE [ID] = @ID"
InsertCommand="INSERT INTO [employee_courses] ([employeeId], [courseId]) VALUES (@employeeId, @courseId)"
SelectCommand="SELECT * FROM [employee_courses] WHERE ([employeeId] = @Username)"
UpdateCommand="UPDATE [employee_courses] SET [employeeId] = @employeeId, [courseId] = @courseId WHERE [ID] = @ID">
<DeleteParameters>
<asp:Parameter Name="ID" Type="Int32" />
</DeleteParameters>
<InsertParameters>
<asp:Parameter Name="employeeId" Type="String" />
<asp:Parameter Name="courseId" Type="Int32" />
<asp:ControlParameter ControlID="ListView1" Name="Username" PropertyName="SelectedValue" Type="String" />
</InsertParameters>
<SelectParameters>
<asp:ControlParameter ControlID="ListView1" Name="Username"
PropertyName="SelectedValue" Type="String" />
</SelectParameters>
<UpdateParameters>
<%--<asp:Parameter Name="employeeId" Type="String" />--%>
<asp:Parameter Name="courseId" Type="Int32" />
<asp:Parameter Name="ID" Type="Int32" />
</UpdateParameters>
</asp:SqlDataSource>
首先,您必須從數據庫中獲取數據。 您可以通過System.Data.SqlClient庫連接到數據庫。 然后用這些數據填充您的listview: example 。 來自msdn的ListView 。 如果您想學習asp.net中的編程,則可以從wrox查看本書, 以C#開頭ASP.NET 4。
例如數據綁定看起來像
//YourWebForm1.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
DataSet dataSet = GetYourDataFromDBMethode() // methode gets data from dataset like in msdn spec which I posted above in example;
ListView1.DataSource = dataSet;
ListView.DataBind();
}
然后在SelectedIndexChanged事件上,將數據綁定到第二個ListView。
我不能再寫太多了,這需要很多時間。
希望能幫助到你。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.