我只是玩一些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