我只是玩一些LINQ和asp.net - 絕對初學者,所以我甚至不知道如何問我的問題。將gridview連接到多個表linqdatasource
無論如何,我有一個MSSQL數據庫與ASP會員信息。出於各種原因(主要是爲了將簡介信息存儲在清晰的列中而不是一個一個)我使用的是自定義配置文件提供程序,因此我的配置文件信息分佈在數據庫中的幾個表中。
我有正常的aspnet_membership和aspnet_profle,但我也有一個tblUserProfile表,其中我存儲了一堆用戶配置文件信息,如名字,電話號碼等。tblUserProfile也有一個companyID,指的是一張帶有公司名單的獨立表格。
所有表都有一個GUID UserId作爲它們的鍵。 我創建了一個數據模型圖,其中包含我正在使用的所有表格,並顯示了正確鏈接等的鍵。
所以現在我有一個GridView使用連接到aspnet_membership表的LinqDataSource。這一點到目前爲止效果很好,我可以顯示aspnet_membership表中的所有信息。我也想通了如何顯示公司用戶是這樣的:
<asp:TemplateField HeaderText="Company" SortExpression="tblUserProfile.Company.CompanyName">
<ItemTemplate>
<%#Eval("tblUserProfile.Company.CompanyName") %>
</ItemTemplate>
我無法弄清楚是如何更改此保存到數據庫中。如果我在aspnet_membership表中更改直接字段,它們會正確更新。
我創建顯示所有可用的公司下拉,可以選擇該公司直接在網格改變,但是當我嘗試更新它恢復爲原始值。
<asp:TemplateField HeaderText="Company" SortExpression="tblUserProfile.Company.CompanyName">
<ItemTemplate>
<%#Eval("tblUserProfile.Company.CompanyName") %>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="CompanyDropDownList"
DataSourceID="CompanyDataSource"
DataValueField="Id"
DataTextField="CompanyName"
SelectedValue='<%#Bind("tblUserProfile.CompanyID") %>'
runat="server">
</asp:DropDownList>
</EditItemTemplate>
</asp:TemplateField>
我不知道這是否是因爲我的數據源是連接到一個表(aspnet_membership),但我試圖改變值在tblUserProfile。似乎我可以從其他通過外鍵連接的表中檢索/顯示值,但是我也可以更新那些表中的值嗎?
對不起了長篇大論的問題,但我是很新,這使不能確定究竟在何處的問題,否則我會更具體。
感謝任何指針
啊對...是啊,我試圖使用自動更新。我一直在跟着一個簡單的數據庫的教程,但試圖適應我自己的。 我應該能夠找出代碼來處理額外的更新,現在我知道這是需要做的。 您是否知道任何有關自動更新限制的文檔? – Adam 2009-11-28 23:56:32
儘管我確信它的確存在,但我一般都不確定,但總的來說,如果它涉及到連接,或者基本上任何「幻想」,它都不會與自動更新一起工作,而且您必須在至少一些代碼。 – 2009-11-29 00:04:49