簡體   English   中英

從SQL Server讀取VARBINARY(MAX)到C#

[英]Read VARBINARY(MAX) from SQL Server to C#

我需要從SQL Server 2008讀取數據行。其中一列的類型是VARBINARY(MAX) 在C#中,我想使用out參數來讀取它(並且給定的場景主要滿足需求)。

但我需要指定參數變量大小來填充C#變量。 在這里我假設8000就夠了......但誰知道:

database.AddOutParameter(command, "vbCertificate", DbType.Binary, 8000);

所以問題是:

  1. SQL Server 2008的MAX數量是多少?
  2. 這種情況可以使用out參數嗎?

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.

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