【发布时间】:2010-11-06 01:36:32
【问题描述】:
我有一个奇怪的问题。我正在加载 1k 发票对象,首先是标题,然后是我的 DAL 中的详细信息。我在这个项目上使用 VB.NET。我能够很好地获得发票标题。当我开始加载每张发票的详细信息时,我在 SQL Server 上遇到了超时。我将超时时间增加到 5 分钟,但还是一样。如果我将发票数量减少到 200,它可以正常工作。
这就是我正在做的事情
//我已经加载了发票标题。我现在正在迭代每张发票以获取其详细信息 对于每张发票 As Invoice In invoices drInvoiceItems = DBSqlHelperFactory.ExecuteReader(CONNECTION_STRING,CommandType.StoredProcedure,“dbo.getinvoiceitem”,_ New SqlParameter("@invoicenumber", invoice.InvoiceNumber)) 虽然 drInvoiceItems.Read() invoice.LineItems.Add(New InvoiceLine(drInvoiceItems("id"), drInvoiceItems("inv_id"), drInvoiceItems("prodid"), drInvoiceItems("name"), drInvoiceItems("barcode"), drInvoiceItems("quantity") , drInvoiceItems("costprice"))) 结束时 下一个 退回发票我知道由于迭代,我正在触发与数据库的 1k 连接。我不能用一个 select 语句加载所有行项目,然后执行类似的操作
For Each invoice As Invoice In invoices
invoice.Items.Add(invoiceItems.Find(Function(i as InvoiceItem),i.InvoiceNumber = invoice.InvoiceNumber))
Next
使用上面的 lambda 函数时出现错误 错误 1 类型“System.Collections.Generic.List(Of BizComm.InvoiceLine)”的值无法转换为“BizComm.InvoiceLine”。 C:\Projects\BizComm\InvoiceDAL.vb 75 35 BizComm
【问题讨论】:
-
也许你应该改写标题。我根本看不到这与泛型有关...
标签: sql vb.net data-access-layer