簡體   English   中英

字符串或二進制數據將被截斷。 在SqlDataReader上

[英]String or binary data would be truncated. on SqlDataReader

我有一個選擇語句的問題。 它可以在SQL Server中工作,但是在C#中使用時會大喊標題錯誤

所以我的SQL語句看起來像這樣

  declare @312341v1Whenaddakeylength128charatsendingreportonP varchar(max)= 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec faucibus nulla ut lorem ornare, sit amet ullamcorper diam laoreet. Proin convallis est ut euismod rhoncus. Donec in magna eleifend, dictum neque non, pellentesque diam. Aliquam faucibus fringilla ex, vitae posuere lectus rhoncus congue. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Aliquam mollis vel enim at consequat. Integer porta feugiat sem, a condimentum felis hendrerit ac. Quisque lobortis placerat sodales. Nam et nunc nulla.

Pellentesque vel risus vel sem pellentesque feugiat. Ut sodales odio sollicitudin, consequat nisi quis, lobortis ex. Donec fermentum ante massa, luctus auctor sapien consectetur ac. Phasellus auctor nunc lorem, ultricies sollicitudin metus placerat ut. Proin non viverra erat. Maecenas malesuada orci mi. Curabitur vel dolor a ex ultrices posuere. Sed id quam porta lorem venenatis auctor sed a dolor. Suspendisse lobortis mauris blandit lacinia semper. Nunc nisl orci, porta nec maximus id, imperdiet vitae purus. Aenean a elit id augue suscipit pretium vel nec risus. Suspendisse potenti. Pellentesque facilisis mauris eu orci sagittis semper. Suspendisse at placerat mauris.

Sed vulputate est quis justo mattis convallis. Aenean tempor auctor arcu eget suscipit. Maecenas ac vehicula neque, ut placerat lorem. Integer felis lectus, varius sit amet neque auctor, ultrices interdum mauris. Ut fringilla, sapien id auctor blandit, enim diam tempus neque, eu tempus libero nibh a purus. Maecenas bibendum ligula ut malesuada placerat. Morbi egestas commodo velit eu egestas. Phasellus sed iaculis justo. Sed ipsum nisl, molestie ac luctus sit amet, fringilla luctus felis. Nullam vitae lorem in metus blandit maximus.

Nunc hendrerit odio quis felis mattis bibendum sed ut neque. Praesent blandit nunc in elit semper feugiat a a mi. Pellentesque a cursus nisi. Etiam maximus tristique elementum. Praesent finibus blandit sagittis. Morbi mollis leo justo, ut malesuada mauris ullamcorper sit amet. Ut eu bibendum justo. Integer tempus elit erat, non egestas urna tristique in. Quisque et massa nec felis rutrum posuere ut vitae sapien. Ut semper euismod mauris ac blandit. Vivamus dignissim est sit amet maximus volutpat. Cras fermentum massa nunc, non tincidunt erat rutrum vitae.

Ut commodo ullamcorper erat, eget sollicitudin nisl lacinia sed. Phasellus fermentum felis ac urna elementum, et bibendum nunc sagittis. Curabitur vestibulum tristique ante ut consequat. Pellentesque egestas ex sit amet mauris ultrices, malesuada bibendum est finibus. Curabitur ac feugiat arcu. Nam auctor pulvinar molestie. Quisque feugiat, nulla non rhoncus blandit, orci leo interdum eros, in imperdiet libero ante nec mauris. Morbi id aliquam purus, quis posuere magna. Nunc vel sem eget ante rhoncus imperdiet eu et leo.

Quisque ac malesuada est. Maecenas a dolor vitae turpis ultricies vestibulum. Quisque tincidunt lorem volutpat, eleifend nulla vel, dictum lorem. Nullam id imperdiet nunc, posuere hendrerit nulla. In volutpat, augue ut posuere ultricies, lectus sapien condimentum lectus, in consequat nibh nisi quis dolor. Cras rhoncus mi pellentesque massa dignissim convallis. Vivamus eu eleifend felis, vel eleifend dui. Etiam vitae sapien nunc. Integer est quam, sodales quis dolor vel, commodo sodales urna. Sed ac sapien ligula. Cras tempor felis vitae justo ullamcorper, ut venenatis risus commodo. Fusce lobortis egestas commodo.

Sed at libero quis mauris ultricies aliquam vel feugiat lorem. Donec pharetra vitae libero id placerat. Aliquam suscipit porta urna, a hendrerit mauris ullamcorper sit amet. Phasellus mollis diam sagittis metus dapibus, ac porta tortor euismod. Nam quam lacus, dignissim quis feugiat ut, rhoncus sit amet augue. Vestibulum molestie egestas venenatis. Ut a nulla in augue pretium tincidunt quis eget ex. Phasellus blandit bibendum neque. Sed laoreet ullamcorper justo. Morbi non sodales justo. Integer dignissim varius tincidunt. Nulla sagittis, sem ut tempor porta, lorem leo elementum sapien, sed sollicitudin diam nisl sed massa. Etiam egestas mauris nec bibendum pulvinar. Etiam sed nisl cursus, luctus augue non, pharetra enim. Suspendisse ac magna nisl. Mauris tempus eu mauris malesuada consectetur.

Duis tincidunt vitae diam et mattis. Donec laoreet euismod aliquam. Donec at efficitur sapien, vel lacinia ante. Proin vehicula ut quam vitae faucibus. Nam venenatis est sit amet tortor varius, quis sollicitudin lectus placerat. Donec vel aliquet tellus. Integer pellentesque leo sit amet lorem luctus, eu tempor nisl tincidunt.

Suspendisse turpis felis, euismod at auctor vel, hendrerit auctor sapien. Mauris finibus interdum vestibulum. Donec quis dolor ac orci commodo efficitur. Nullam in porttitor ipsum, a commodo mauris. Proin et blandit erat. Mauris posuere lacus non leo pulvinar, dignissim aliquam augue vulputate. Nullam et consequat augue, ac ultricies nibh.

Morbi vestibulum, orci eu molestie convallis, ligula felis convallis lectus, in congue tellus augue et purus. Nulla non dui urna. Aliquam at mattis mauris. Phasellus eget congue urna. Phasellus sollicitudin tellus leo, vel efficitur magna condimentum nec. Donec venenatis feugiat blandit. Quisque erat elit, feugiat nec orci volutpat, semper maximus turpis. Nulla rutrum molestie dolor sed varius. Morbi scelerisque quam dui, ac blandit leo rutrum nec. Vivamus vel maximus orci, at malesuada purus. Cras gravida vulputate augue, sit amet dictum erat aliquet cursus. Ut purus nibh, aliquam vel tincidunt a, vehicula sit amet nulla. Suspendisse ultrices, tortor eget tristique rhoncus, mi elit feugiat ante, ut elementum lacus quam a dolor. Vestibulum nibh justo, dapibus vitae massa vel, pellentesque iaculis tellus.

Fusce eu volutpat leo. Nunc luctus quis lorem nec mattis. Pellentesque eget sagittis sem. Curabitur mattis ligula ut iaculis accumsan. Aliquam ut enim ac magna hendrerit porttitor. In nec lorem non neque euismod luctus. Praesent euismod purus nec leo egestas lobortis.

Nunc eros ipsum, tincidunt a purus at, maximus lobortis ipsum. Sed condimentum, turpis non commodo ornare, ligula purus gravida sapien, in interdum elit risus sit amet nibh. Curabitur mattis cursus ligula. In ut lectus et massa iaculis dignissim. Interdum et malesuada fames ac sed.'


  SELECT * , CASE  WHEN Column1 LIKE '%' + @312341v1Whenaddakeylength128charatsendingreportonP+ '%' 
  THEN 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec faucibus nulla ut lorem ornare, sit amet ullamcorper diam laoreet. Proin convallis est ut euismod rhoncus. Donec in magna eleifend, dictum neque non, pellentesque diam. Aliquam faucibus fringilla ex, vitae posuere lectus rhoncus congue. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Aliquam mollis vel enim at consequat. Integer porta feugiat sem, a condimentum felis hendrerit ac. Quisque lobortis placerat sodales. Nam et nunc nulla.

Pellentesque vel risus vel sem pellentesque feugiat. Ut sodales odio sollicitudin, consequat nisi quis, lobortis ex. Donec fermentum ante massa, luctus auctor sapien consectetur ac. Phasellus auctor nunc lorem, ultricies sollicitudin metus placerat ut. Proin non viverra erat. Maecenas malesuada orci mi. Curabitur vel dolor a ex ultrices posuere. Sed id quam porta lorem venenatis auctor sed a dolor. Suspendisse lobortis mauris blandit lacinia semper. Nunc nisl orci, porta nec maximus id, imperdiet vitae purus. Aenean a elit id augue suscipit pretium vel nec risus. Suspendisse potenti. Pellentesque facilisis mauris eu orci sagittis semper. Suspendisse at placerat mauris.

Sed vulputate est quis justo mattis convallis. Aenean tempor auctor arcu eget suscipit. Maecenas ac vehicula neque, ut placerat lorem. Integer felis lectus, varius sit amet neque auctor, ultrices interdum mauris. Ut fringilla, sapien id auctor blandit, enim diam tempus neque, eu tempus libero nibh a purus. Maecenas bibendum ligula ut malesuada placerat. Morbi egestas commodo velit eu egestas. Phasellus sed iaculis justo. Sed ipsum nisl, molestie ac luctus sit amet, fringilla luctus felis. Nullam vitae lorem in metus blandit maximus.

Nunc hendrerit odio quis felis mattis bibendum sed ut neque. Praesent blandit nunc in elit semper feugiat a a mi. Pellentesque a cursus nisi. Etiam maximus tristique elementum. Praesent finibus blandit sagittis. Morbi mollis leo justo, ut malesuada mauris ullamcorper sit amet. Ut eu bibendum justo. Integer tempus elit erat, non egestas urna tristique in. Quisque et massa nec felis rutrum posuere ut vitae sapien. Ut semper euismod mauris ac blandit. Vivamus dignissim est sit amet maximus volutpat. Cras fermentum massa nunc, non tincidunt erat rutrum vitae.

Ut commodo ullamcorper erat, eget sollicitudin nisl lacinia sed. Phasellus fermentum felis ac urna elementum, et bibendum nunc sagittis. Curabitur vestibulum tristique ante ut consequat. Pellentesque egestas ex sit amet mauris ultrices, malesuada bibendum est finibus. Curabitur ac feugiat arcu. Nam auctor pulvinar molestie. Quisque feugiat, nulla non rhoncus blandit, orci leo interdum eros, in imperdiet libero ante nec mauris. Morbi id aliquam purus, quis posuere magna. Nunc vel sem eget ante rhoncus imperdiet eu et leo.

Quisque ac malesuada est. Maecenas a dolor vitae turpis ultricies vestibulum. Quisque tincidunt lorem volutpat, eleifend nulla vel, dictum lorem. Nullam id imperdiet nunc, posuere hendrerit nulla. In volutpat, augue ut posuere ultricies, lectus sapien condimentum lectus, in consequat nibh nisi quis dolor. Cras rhoncus mi pellentesque massa dignissim convallis. Vivamus eu eleifend felis, vel eleifend dui. Etiam vitae sapien nunc. Integer est quam, sodales quis dolor vel, commodo sodales urna. Sed ac sapien ligula. Cras tempor felis vitae justo ullamcorper, ut venenatis risus commodo. Fusce lobortis egestas commodo.

Sed at libero quis mauris ultricies aliquam vel feugiat lorem. Donec pharetra vitae libero id placerat. Aliquam suscipit porta urna, a hendrerit mauris ullamcorper sit amet. Phasellus mollis diam sagittis metus dapibus, ac porta tortor euismod. Nam quam lacus, dignissim quis feugiat ut, rhoncus sit amet augue. Vestibulum molestie egestas venenatis. Ut a nulla in augue pretium tincidunt quis eget ex. Phasellus blandit bibendum neque. Sed laoreet ullamcorper justo. Morbi non sodales justo. Integer dignissim varius tincidunt. Nulla sagittis, sem ut tempor porta, lorem leo elementum sapien, sed sollicitudin diam nisl sed massa. Etiam egestas mauris nec bibendum pulvinar. Etiam sed nisl cursus, luctus augue non, pharetra enim. Suspendisse ac magna nisl. Mauris tempus eu mauris malesuada consectetur.

Duis tincidunt vitae diam et mattis. Donec laoreet euismod aliquam. Donec at efficitur sapien, vel lacinia ante. Proin vehicula ut quam vitae faucibus. Nam venenatis est sit amet tortor varius, quis sollicitudin lectus placerat. Donec vel aliquet tellus. Integer pellentesque leo sit amet lorem luctus, eu tempor nisl tincidunt.

Suspendisse turpis felis, euismod at auctor vel, hendrerit auctor sapien. Mauris finibus interdum vestibulum. Donec quis dolor ac orci commodo efficitur. Nullam in porttitor ipsum, a commodo mauris. Proin et blandit erat. Mauris posuere lacus non leo pulvinar, dignissim aliquam augue vulputate. Nullam et consequat augue, ac ultricies nibh.

Morbi vestibulum, orci eu molestie convallis, ligula felis convallis lectus, in congue tellus augue et purus. Nulla non dui urna. Aliquam at mattis mauris. Phasellus eget congue urna. Phasellus sollicitudin tellus leo, vel efficitur magna condimentum nec. Donec venenatis feugiat blandit. Quisque erat elit, feugiat nec orci volutpat, semper maximus turpis. Nulla rutrum molestie dolor sed varius. Morbi scelerisque quam dui, ac blandit leo rutrum nec. Vivamus vel maximus orci, at malesuada purus. Cras gravida vulputate augue, sit amet dictum erat aliquet cursus. Ut purus nibh, aliquam vel tincidunt a, vehicula sit amet nulla. Suspendisse ultrices, tortor eget tristique rhoncus, mi elit feugiat ante, ut elementum lacus quam a dolor. Vestibulum nibh justo, dapibus vitae massa vel, pellentesque iaculis tellus.

Fusce eu volutpat leo. Nunc luctus quis lorem nec mattis. Pellentesque eget sagittis sem. Curabitur mattis ligula ut iaculis accumsan. Aliquam ut enim ac magna hendrerit porttitor. In nec lorem non neque euismod luctus. Praesent euismod purus nec leo egestas lobortis.

Nunc eros ipsum, tincidunt a purus at, maximus lobortis ipsum. Sed condimentum, turpis non commodo ornare, ligula purus gravida sapien, in interdum elit risus sit amet nibh. Curabitur mattis cursus ligula. In ut lectus et massa iaculis dignissim. Interdum et malesuada fames ac sed.' 
  END as ErrorCode FROM Table rpmsp WHERE   Column1 LIKE '%' + @312341v1Whenaddakeylength128charatsendingreportonP+ '%'  

因此,此語句在SQL中工作正常,它返回0行,但不會引發異常。

在C#中

 SqlDataReader dataReader = sqlCommand.ExecuteReader();
            try{ dataReader.Read(); }
            catch (Exception ex) {
                var x = 1;
            }

這會在dataReader.Read()行上引發異常。 例外是String or binary data would be truncated 我不知道為什么,因為我沒有插入它只是一個動態選擇。

有任何想法嗎 ?

我們構建了將某些表導出到外部DB Server的過程。 我們使用以XML格式返回數據的視圖。

select col1, col2, col3 from table for xml auto

我在c#中檢測到(我們使用存儲過程和.ExecuteNonQuery()),它為每個xml文件返回多個行,我認為它使用2K數據包。

然后,順序讀取所有行並使用StringBuilder,再次重新構建文本。

StringBuilder xml_text = new StringBuilder();
foreach(DataRow row in table.Rows)
{
    xml_text.Append(row[0].ToString());
}

這不是C#問題。 如錯誤消息所示,它是一個SQL。 根本問題是SQL Server無法始終如一地轉換字符串的數據類型/大小。

在您的SQL中將所有字符串的顯式轉換添加到varchar(max)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM