[英]Read VARBINARY(MAX) from SQL Server to C#
我需要從SQL Server 2008讀取數據行。其中一列的類型是VARBINARY(MAX)
。 在C#中,我想使用out參數來讀取它(並且給定的場景主要滿足需求)。
但我需要指定參數變量大小來填充C#變量。 在這里我假設8000就夠了......但誰知道:
database.AddOutParameter(command, "vbCertificate", DbType.Binary, 8000);
所以問題是:
VARBINARY(MAX)
的最大大小為2 GB數據 - 2'147'483'648字節。
在您的情況下,當在C#中定義它時,我建議使用int.MaxValue
作為要提供的值。
是的,如果你想從SQL Server 2008表中獲取字節數組,那么你絕對可以使用out
參數。
正如@marc_s所說,我只想添加一些東西。
有兩種數據類型
二進制 [(n)]
固定長度的二進制數據,長度為n個字節,其中n是1到8,000的值。 存儲大小為n個字節。
varbinary [(n | max)]
可變長度的二進制數據。 n可以是1到8,000之間的值。 max表示最大存儲大小為2 ^ 31-1(等於int.MaxValue,即2,147,483,647)個字節。 存儲大小是輸入數據的實際長度+ 2個字節。 輸入的數據長度可以是0個字節。
如果你指定max,那么你的關注點應該是varbinary而不是binary
database.AddOutParameter(command,“vbCertificate”,DbType.Binary,8000);
database.AddOutParameter(command,“vbCertificate”,SqlDbType.VarBinary,int.MaxValue);
我沒有在MAX的任何地方看到明確的大小。 您是否嘗試使用DbType.Object執行此操作? 這在msdn上定義為任何未明確定義的類型的通用類型。 我會嘗試,看看它是否有效。 否則,我可能會選擇DbType.Binary。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.