在c#中将字节数组转换为十六进制

时间:2014-01-23 14:58:37

标签: c# sql

我需要从代码运行存储过程。其中一个输入参数是表的rowVersion。 rowVersion是一个字节数组({0,0,0,0,0,0,11,191},在db中为0x0000000000000DBF)。所以如果以这种方式添加rowVersion:

cmd.Parameters.AddWithValue("@myPKRowversion", 0x0000000000000DBF);

我的sp正在工作。但是当我像这里一样添加它时:

uint a = 0x0000000000000DBF;
cmd.Parameters.AddWithValue("@myPKRowversion", a);

或者如果我将字节数组转换为字符串,如:

string a = "0x0000000000000DBF";
cmd.Parameters.AddWithValue("@myPKRowversion", a);

我的sp无法正常工作。 我该怎么办才能使我的sp工作?

1 个答案:

答案 0 :(得分:3)

我建议你将添加为字节数组。例如:

byte[] bytes = new byte[] { 0, 0, 0, 0, 0, 0, 13, 191 };
cmd.Parameters.Add("@myPKRowVersion", SqlDbType.Binary).Value = bytes;

如果您尝试指定字节,最自然的类型是字节数组......