我有一个128位密钥,我想存储在数据库中.我的代码创建了密钥,byte[16]数据库中的数据类型是varbinary(16).
当我尝试从db再次检索字节数组时,我没有得到原始值.
这是我的代码:
byte[] test = new byte[16]{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
SqlCommand myInsertCmd = new SqlCommand("INSERT INTO Test(test) VALUES(@Param)", myConnection);
SqlParameter param = myInsertCmd.Parameters.Add("@Param", SqlDbType.VarBinary, 16);
param.Value = test;
myInsertCmd.ExecuteNonQuery();
SqlDataAdapter myAdapter1 = new SqlDataAdapter("Select test from Test;", myConnection);
DataTable dt = new DataTable();
myAdapter1.Fill(dt);
foreach (DataRow row in dt.Rows)
{
char[] charArray = row["test"].ToString().ToCharArray();
}
Run Code Online (Sandbox Code Playgroud)
因为charArray,我得到0x0053,0x0079,0x0073,0x0074等,而且,charArray只有13个字节长.我究竟做错了什么?
Ars*_*yan 15
row["Test"]包含byte[],所以row["Test"].ToString()返回默认ToString的byte[]类型,这是"System.Byte[]".之后你转换System.Byte[]并获得结果
foreach (DataRow row in dt.Rows)
{
byte[] byteArray = (byte[])row["test"];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22666 次 |
| 最近记录: |