2016-09-28 10 views
1

안녕하세요.asp.net 웹 페이지의 Large SQL 쿼리 문제

내 모든 제품 URL의 목록을 렌더링하려고하는데 ASP.NET 웹 페이지 (WebForm 또는 MVC 아님)를 사용하고 있습니다.

그러나 데이터베이스 쿼리가 일정량의 레코드를 초과하면 다음 오류가 발생합니다.

Microsoft.CSharp.RuntimeBinder.RuntimeBinderException : 나는 그것이 잘 작동 SQL 쿼리 500에 넣으면 Null 참조

에 바인딩 런타임을 수행 할 수 없습니다.

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"; 

내 DB 쿼리는 내가 클래식 ASP에서이 작업을 수행 할 수 있어야하는 데 사용됩니다.

asp.net에서 SQL 쿼리 크기에 제한이있을 수 있습니다. 그렇다면이 문제를 어떻게 해결할 수 있습니까?

+0

데이터베이스에 몇 개의 레코드가 있습니까? –

+0

연결 문자열에 "연결 시간 초과"를 추가하려고 시도 했습니까? – A3006

+0

안녕하세요, 전화 1500 건 정도 밖에 없습니다. –

답변

1

오류 메시지에서 중요한 어구 런타임은 구속력을 수행 할 수 없습니다 "입니다 제품입니다 null "을 참조하십시오.

"shop_products"테이블의 상위 500 개 행에 NULL 값이있는 열 값이없는 것으로 의심됩니다. 그래서 select가 작동하고 "top 500"한정자가없는 select가 그렇지 않습니다.

코드는 DBnull 값을 감지하고 이러한 경우에 대한 기본값을 지정하거나이 런타임 오류를 피하기 위해 일종의 오류 처리를 수행해야합니다.

0

, 나는 작은 SQL 쿼리에이를 분할이 문제를 해결 범주에 의해 분리하는 데 도움이된다.