解決SQL報錯提供了過多的引數,最多應為 2100

2021-09-25 13:47:45 字數 405 閱讀 2911

使用sqlserver或其它資料庫時,有時候查詢條件過多的情況下會報如下類似的錯誤:

傳入的**格式資料流(tds)遠端過程呼叫(rpc)協議流不正確。此 rpc 請求中提供了過多的引數。最多應為 2100

這是由於查詢條件過多造成的,所以需要分割查詢條件,下面附上通用的方法:

/**

*分割查詢條件集合

*/private static list> splitlist(listlists,int limit)

int result=0;

for(int i=0;isize)

list.add(lists.sublist(i, result));

} return list;

}

資料庫sql的in操作,解決in的過多

乙個sql的拼寫後,伺服器會把這個sql傳送到資料庫伺服器執行,一般不在乙個物理機上。那麼傳送需要走網路,包丟失等網路情況就可能出現。一般情況,乙個sql的長度不會很大,但是有種這樣的情況。in操作時,這些資料 於外部,不好預估有多少。此時,最好不要貿然把所有字串都通過這乙個sql拼進去。此時這個s...

LINQ引數過多時的解決方案

在專案中曾有這樣的應用,許可權篩選時先組織出員工的id,然後使用linq在相應的表中查詢資料,條件是這些查詢出來的資料的id必須在剛才許可權篩選出來的id中,但是如果許可權中的id太多,就會出現問題 傳入的 格式資料流 tds 遠端過程呼叫 rpc 協議流不正確。此 rpc 請求中提供了過多的引數。...

LINQ引數過多時的解決方案

在專案中曾有這樣的應用,許可權篩選時先組織出員工的id,然後使用linq在相應的表中查詢資料,條件是這些查詢出來的資料的id必須在剛才許可權篩選出來的id中,但是如果許可權中的id太多,就會出現問題 傳入的 格式資料流 tds 遠端過程呼叫 rpc 協議流不正確。此 rpc 請求中提供了過多的引數。...