【发布时间】:2009-11-27 19:25:26
【问题描述】:
我只是在玩一些 linq 和 asp.net - 绝对是初学者,所以我什至不确定如何问我的问题。
无论如何,我有一个 MSSQL 数据库,其中包含 asp 成员信息。由于各种原因(主要是将个人资料信息存储在清晰的列中,而不是全部存储在一个列中),我正在使用自定义个人资料提供程序,因此我的个人资料信息分布在我数据库中的几个表中。
我有正常的 aspnet_membership 和 aspnet_profle,但我还有一个 tblUserProfile 表,其中存储了一堆用户配置文件信息,如名字、电话号码等。tblUserProfile 中还有一个 companyID,指的是单独的表格,其中包含公司列表。
所有表都有一个 GUID UserId 作为它们的键。 我创建了一个数据模型图,其中包含我正在使用的所有表,它显示了正确连接的键等。
所以现在我有一个使用连接到 aspnet_membership 表的 LinqDataSource 的 gridview。到目前为止,这一点效果很好,我能够显示 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 中。似乎我可以从通过外键连接的其他表中检索/显示值,但我也可以更新这些表中的值吗?
抱歉,这个问题冗长,但我对此很陌生,所以不确定问题出在哪里,否则我会更具体。
感谢大家的指点
【问题讨论】: