在C#中,如何將SQL Server Management Studio顯示的文本輸出顯示爲varbinary列的內容,然後將該文本轉換爲存儲在列中的byte []?Varbinary text representation to byte []
回答
SqlConnection conn = new SqlConnection(yourConnectionString);
SqlCommand cmd = new SqlCommand("select col from yourtable", conn);
SqlDataReader reader = cmd.ExecuteReader();
if (reader.HasRows)
{
byte[] bytes = (byte[])reader[0];
}
reader.Close();
conn.Close();
OK,所以你要複製並粘貼varbinary列(例如「0x6100730064006600」)顯示在SSMS的價值,並獲得在C#中的字節[]從它?
這很簡單 - 0x之後的部分只是十六進制值(每個2個字符)。所以,你需要每一對,將其轉換爲一個數字,16(十六進制)的基礎上,並把它添加到列表,像這樣:
string stringFromSQL = "0x6100730064006600";
List<byte> byteList = new List<byte>();
string hexPart = stringFromSQL.Substring(2);
for (int i = 0; i < hexPart.Length/2; i++)
{
string hexNumber = hexPart.Substring(i * 2, 2);
byteList.Add((byte)Convert.ToInt32(hexNumber, 16));
}
byte [] original = byteList.ToArray();
免責聲明 - 相當狡猾和unoptimal代碼,我只是黑客攻擊一起用於演示目的(它應該可以工作)。
爲什麼你的代碼不是最理想的?在我看來,這似乎相當不錯:) –
@Żubrówka - 在可讀性方面,它並不算太壞;就性能而言,我們可以簡單地使用一個數組,因爲我們知道它究竟需要多大。使用不同的數據結構,然後.ToArray() - 它似乎有點鬆懈,但我主要是爲了清晰和可讀性做的:) –
使我的一天。非常感謝 – rank1
- 1. convert zip byte [] to unzip byte []
- 2. Object to byte - System.InvalidCastException
- 3. Java byte to int
- 4. OLEVariant to .Net byte []
- 5. Java - byte [] to FileItem
- 6. Groovy sql to byte
- 7. float to byte(JavaScript)
- 8. IHTMLImgElement to byte []
- 9. Java:Clob to byte []
- 10. BufferedReader to byte []
- 11. OutputStream to byte []
- 12. SecureString to Byte [] C#
- 13. byte [] to image android
- 14. byte [] to ushort []
- 15. Bitmap to byte []
- 16. C#int to byte []
- 17. Java:byte [] to Byte []
- 18. Texture2D to byte [] to字符串
- 19. Text to Column change as Text to row
- 20. vb.net byte [] to C++ char *
- 21. c#convert system.IO.Stream to Byte []
- 22. Uuencoded image to byte array
- 23. Flex - Java byte to mp3
- 24. byte [] to bitmapImage in silverlight
- 25. ASP MVC - byte [] to Image
- 26. Java:StringBuffer to byte [] without toString
- 27. BitmapImage to byte [] - C#web
- 28. Speech to Text Android
- 29. Jdatechooser text to ally
- 30. Android text to image
謝謝 - 但我想從SQL Server Management Studio窗口剪切並粘貼文本。我不想重新查詢數據庫。 – Slaggg
SSMS是設計用於顯示格式化數據的客戶端應用程序。它不具有訪問從數據庫返回的底層二進制數據的接口。這就是這個答案中描述的編程接口。 SSMS是錯誤的工具。 –
@ChrisSmith我不同意 - 在二進制數據字段的SSMS文本表示中顯示的文本內容顯然與存儲在該字段中的實際數據相關。 – Slaggg