我在MS Access中工作,并且“无法从指定的表中删除”错误。
我的表是:
Orders
OrderDetails
Products
OrderView
OrderView是一个查询表,数据分别来自OrderDetails和Products表。
我正在尝试从OrderDetails中删除记录,其中productId与gridview中的productId匹配。
我的sql语句是:
DELETE * FROM OrderDetails WHERE productId=@productId
我从网格视图中获取@productId
这是我的网格视图标记:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataSourceID="row3" BackColor="White" BorderColor="#CCCCCC"
BorderStyle="None" BorderWidth="1px" CellPadding="4" ForeColor="Black"
GridLines="Horizontal"
DataKeyNames="oProductId"
width="100%"
>
<Columns>
<asp:BoundField DataField="oProductId" HeaderText="Product Id"
SortExpression="oProductId" />
<asp:BoundField DataField="pProductName" HeaderText="Product Name"
SortExpression="pProductName" />
<asp:BoundField DataField="oQty" HeaderText="Quantity"
SortExpression="oQty" />
<asp:BoundField DataField="oPrice" HeaderText="Price" SortExpression="oPrice"
DataFormatString="{0:c}" />
<asp:BoundField DataField="oAmt" HeaderText="Amount"
SortExpression="oAmt" ReadOnly="True" DataFormatString="{0:c}" />
<asp:TemplateField HeaderText="Action">
<ItemTemplate>
<asp:LinkButton ID="btnDelete" Text="Delete" runat="server" CommandName="Delete" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
<FooterStyle BackColor="#CCCC99" ForeColor="Black" />
<HeaderStyle BackColor="#333333" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="White" ForeColor="Black" HorizontalAlign="Right" />
<SelectedRowStyle BackColor="#CC3333" Font-Bold="True" ForeColor="White" />
<SortedAscendingCellStyle BackColor="#F7F7F7" />
<SortedAscendingHeaderStyle BackColor="#4B4B4B" />
<SortedDescendingCellStyle BackColor="#E5E5E5" />
<SortedDescendingHeaderStyle BackColor="#242121" />
答案 0 :(得分:0)
该表中有多少条记录?您要删除多少条记录?
当我尝试从包含100万条记录的表中删除超过30,000条记录时,我遇到了溢出错误。这似乎是一个访问限制。 Access无法处理足够的内存来保存内存中的所有记录,并在保留已删除的数据的同时进行搜索和删除,以便在发生错误时回滚。这是我最好的猜测。 我已经使用2种策略解决了这个问题:1)除非绝对确定我现在需要插入任何记录,否则不要将任何记录插入到大型表中。使用临时表或全局var数组临时存储值。 2)删除小块。例如。 DELETE ... WHERE ID BETWEEN 20000和25000.确保在WHERE子句中命名的列是Indexed列。我在循环中包含这样的语句,在BETWEEN短语中递增2个val。