你好,希望有人能帮忙。
我试图呈现我所有的产品url的列表,我使用ASP。. NET网页(不包括WebForms或MVC)。
但是如果数据库查询超过一定数量的记录,它会给我以下错误:
Microsoft.CSharp.RuntimeBinder。RuntimeBinderException: Cannot performnull引用上的运行时绑定
如果我把SQL查询top500它工作得很好。
my db query
var db = Database.Open("MyConnectionString");
var Products = "SELECT Top 500* FROM shop_products WHERE site_id = '99' AND product_active = 'Y' ORDER BY product_name ASC";
我曾经能够在经典ASP中做到这一点。
可能在asp.net中有SQL查询大小的限制,如果是这样,我如何解决这个问题。
帮助错误消息中的关键短语是"无法对null引用执行运行时绑定"。
我怀疑"shop_products"表中的前500行没有列值为NULL值。这就是为什么这个选择可以工作,而没有"top 500"限定符的选择不能工作。
您的代码需要检测DBnull值并为这些情况分配默认值,或者执行某种错误处理以避免此运行时错误。
为了解决这个问题,我将其拆分为更小的SQL查询,按类别的产品进行拆分。