1

得到一个绑定到 LinqDataSource 的 gridview,该 LinqDataSource 从 MsSQL 数据库视图获取其数据。

该视图正在拉入各种表格以生成我想要的列表。这一切都很好。

但是,我无法删除,当我尝试使用 delete 时,我收到错误消息:无法对“表(vwMyView)”执行创建、更新或删除操作,因为它没有主键。好吧,那里有许多表确实具有主键,并且我已将 GridView 设置为我想在这种情况下使用的 DatakeyName 'inID'。

我的 LDS 看起来像这样:

<asp:LinqDataSource runat="server" ID="ldsMain" EnableDelete="True" ContextTypeName="MyCode.Classes.Data.MyDataContext" OrderBy="inFirstName" OnDeleting="ldsMain_OnDeleting" TableName="MyView"></asp:LinqDataSource>

甚至尝试删除 OnDeleting。

我需要它直接从主表中删除 MyTable 而不是视图,那么我该怎么做呢?

4

2 回答 2

0

您是否尝试过以下属性GridView

AutoGenerateEditButton="true"
AutoGenerateDeleteButton="true"
于 2012-10-02T02:54:16.237 回答
0

让我们退后一步……这是只读视图还是可更新视图?

如果视图是只读的,那么您需要重新配置 LinqDataSource 以引用 MyTable 而不是视图。但是,如果它是一个可更新视图,那么您可以执行 INSERT、UPDATE 和 DELETE 操作。

于 2013-10-18T17:09:39.350 回答