简短版本:
我有一个绑定到数据源的网格视图,该数据源有一个带有左连接的 SelectCommand,因为 FK 可以为空。在更新时,如果 FK 为空,我想在 FK 表中创建一条记录,然后使用新记录 ID 更新父表。这可能与 SqlDataSources 相关吗?
详细版本:
我有两个表:公司和地址。Company.AddressId 列可以为空。在我的 ascx 页面上,我使用 SqlDataSource 来选择公司和地址的左连接,并使用 GridView 来显示结果。通过让 SqlDataSource 的 UpdateCommand 和 DeleteCommand 执行由分号分隔的两条语句,我可以使用 GridView 的编辑和删除功能同时更新两个表。
我遇到的问题是 Company.AddressId 为空。我需要做的是让数据源在 Address 表中创建一条记录,然后用新的 Address.ID 更新 Company 表,然后像往常一样继续更新。如果可能的话,为了一致性/简单性,我想只使用数据源来做到这一点。是否可以让我的数据源执行此操作,或者向页面添加第二个数据源来处理其中的一些?
一旦我完成了这项工作,我可能会弄清楚如何让它与 InsertCommand 一起工作,但是如果你在滚动并且有一个关于如何让它飞起来的答案,那么请随时提供它。
谢谢。