在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