byte[] c# 中的字符串值
String value in byte[] c#
我必须执行查询以在 SQL table 中插入一个值。值的类型是 varbinary,我要插入一个字符串,其中包含一个十六进制值。所以我尝试像这样使用 SQL 转换函数:
using (SqlCommand dbCommand = new SqlCommand("INSERT INTO [Link] ([Record]) values (CONVERT(varbinary,@myrecord);", dbConn))
dbCommand.Parameters.Add("myrecord", System.Data.SqlDbType.VarBinary).Value = recordString;
但我有这个错误:无法将参数值从字符串转换为
字节[].
所以我尝试将我的字符串转换为 byte[],但是我在此站点上找到的所有函数都将我的字符串转换为 byte 并更改其值,所以这不好,因为我的字符串包含我需要的值插入 table.
回顾:我有一个具有此值的字符串:“0x54000000006C00000000099W043100300030003100”如何将它添加到带有 varbinary 字段的 SQL table 中?
您可以而且应该能够做到这一点确保您调整 VarBinary 大小以适应您的情况
using(SqlCommand dbCommand = new SqlCommand("INSERT INTO [Link] ([Record]) values(@myrecord);", dbCon))
{
// Replace 8000, below, with the correct size of the field
dbCommand.Parameters.Add("@myrecord", System.Data.SqlDbType.VarChar, recordString.Length).Value = recordString;
dbCommand.ExecuteNonQuery();//wrap around a try catch if you need to catch exceptions
}
好的,我想我现在明白了。如果您使用的是 sql 服务器 2008+,您可以这样做:
using (SqlCommand dbCommand = new SqlCommand("INSERT INTO [Link] ([Record]) values (CONVERT(varbinary,@myrecord,1);", dbConn))
dbCommand.Parameters.Add("myrecord", System.Data.SqlDbType.VarChar).Value = recordString;
注意 CONVERT(varbinary,@myrecord,1)
中的 1
。顺便说一句,您给我们的示例数字不是有效的十六进制数字...
更多信息:Msdn
我必须执行查询以在 SQL table 中插入一个值。值的类型是 varbinary,我要插入一个字符串,其中包含一个十六进制值。所以我尝试像这样使用 SQL 转换函数:
using (SqlCommand dbCommand = new SqlCommand("INSERT INTO [Link] ([Record]) values (CONVERT(varbinary,@myrecord);", dbConn))
dbCommand.Parameters.Add("myrecord", System.Data.SqlDbType.VarBinary).Value = recordString;
但我有这个错误:无法将参数值从字符串转换为 字节[].
所以我尝试将我的字符串转换为 byte[],但是我在此站点上找到的所有函数都将我的字符串转换为 byte 并更改其值,所以这不好,因为我的字符串包含我需要的值插入 table.
回顾:我有一个具有此值的字符串:“0x54000000006C00000000099W043100300030003100”如何将它添加到带有 varbinary 字段的 SQL table 中?
您可以而且应该能够做到这一点确保您调整 VarBinary 大小以适应您的情况
using(SqlCommand dbCommand = new SqlCommand("INSERT INTO [Link] ([Record]) values(@myrecord);", dbCon))
{
// Replace 8000, below, with the correct size of the field
dbCommand.Parameters.Add("@myrecord", System.Data.SqlDbType.VarChar, recordString.Length).Value = recordString;
dbCommand.ExecuteNonQuery();//wrap around a try catch if you need to catch exceptions
}
好的,我想我现在明白了。如果您使用的是 sql 服务器 2008+,您可以这样做:
using (SqlCommand dbCommand = new SqlCommand("INSERT INTO [Link] ([Record]) values (CONVERT(varbinary,@myrecord,1);", dbConn))
dbCommand.Parameters.Add("myrecord", System.Data.SqlDbType.VarChar).Value = recordString;
注意 CONVERT(varbinary,@myrecord,1)
中的 1
。顺便说一句,您给我们的示例数字不是有效的十六进制数字...
更多信息:Msdn