簡體   English   中英

如何將int轉換為字節數組?

[英]How to convert int into Byte Array?

我有一個表,其中有一列名為:

'eZip'(varbinary(5),null)。

現在我正在從這樣的Web表單中添加值:

 cmd.Parameters.Add("@eZip", SqlDbType.VarBinary).Value = BitConverter.GetBytes(int.Parse(txtZip.Text.ToString()));

它的工作,但它沒有放一個有效的郵政編碼,而是將其插入我的專欄:

<Binary data>

我在這做錯了什么?

我不認為你本身做錯了什么。 如果將字段定義為varbinary,則無論數據如何,您都將在SQL Server的管理工具中看到“二進制數據”。

你確定你不想只需要CHAR(n)VARCHAR(n)的郵政編碼嗎?

如果您無法更改該列的數據類型,那么您需要做的就是在獲取數據時轉換該值。 根據其他人的建議,您至少應該更改代碼,假設五個字節是字符,而不是整數。

插入值:

 cmd.Parameters.Add("@eZip", SqlDbType.VarBinary).Value = System.Text.Encoding.ASCII.GetBytes(txtZip.Text.ToString()); 

檢索SSMS工具中的值:

SELECT CONVERT(VARCHAR(5), [eZip]) AS [eZip] FROM @zip_table;

從C#中的DataRow dr中檢索值:

System.Text.Encoding.ASCII.GetString(dr["eZip"]);

如果您可以將列更改為CHAR(5)或VARCHAR(5),則不需要進行轉換。

暫無
暫無

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

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