C# 在c中将字节数组转换为十六进制#
我需要从代码运行一个存储过程。其中一个输入参数是表的rowVersion。rowVersion是一个字节数组({0,0,0,0,0,13,191},以db表示为0x0000000000000DBF)。因此,如果要以这种方式添加rowVersion:C# 在c中将字节数组转换为十六进制#,c#,sql,C#,Sql,我需要从代码运行一个存储过程。其中一个输入参数是表的rowVersion。rowVersion是一个字节数组({0,0,0,0,0,13,191},以db表示为0x0000000000000DBF)。因此,如果要以这种方式添加rowVersion: cmd.Parameters.AddWithValue("@myPKRowversion", 0x0000000000000DBF); 我的sp正在工作。但当我像这样添加它时: uint a = 0x0000000000000DBF; cmd.Pa
cmd.Parameters.AddWithValue("@myPKRowversion", 0x0000000000000DBF);
我的sp正在工作。但当我像这样添加它时:
uint a = 0x0000000000000DBF;
cmd.Parameters.AddWithValue("@myPKRowversion", a);
或者,如果我将字节数组转换为字符串,如:
string a = "0x0000000000000DBF";
cmd.Parameters.AddWithValue("@myPKRowversion", a);
我的sp不工作。
我应该如何使sp正常工作 我建议您将其添加为字节数组。例如:
byte[] bytes = new byte[] { 0, 0, 0, 0, 0, 0, 13, 191 };
cmd.Parameters.Add("@myPKRowVersion", SqlDbType.Binary).Value = bytes;
如果您试图指定字节,最自然的类型是字节数组…我建议您将其添加为字节数组。例如:
byte[] bytes = new byte[] { 0, 0, 0, 0, 0, 0, 13, 191 };
cmd.Parameters.Add("@myPKRowVersion", SqlDbType.Binary).Value = bytes;
如果您试图指定字节,最自然的类型是字节数组…我建议您将其添加为字节数组。例如:
byte[] bytes = new byte[] { 0, 0, 0, 0, 0, 0, 13, 191 };
cmd.Parameters.Add("@myPKRowVersion", SqlDbType.Binary).Value = bytes;
如果您试图指定字节,最自然的类型是字节数组…我建议您将其添加为字节数组。例如:
byte[] bytes = new byte[] { 0, 0, 0, 0, 0, 0, 13, 191 };
cmd.Parameters.Add("@myPKRowVersion", SqlDbType.Binary).Value = bytes;
如果您试图指定字节,最自然的类型是字节数组…请注意,
uint
仅表示4个字节,而不是8个字节。无法真正测试这一点,但IDE会将0x0000000000000DBF检测为Int32,而不是UInt32。因此,您的工作示例和第一个非工作示例并不相同。如果您使用int而不是uint,它是否有效?@Tim JonSkeet建议的解决方案在我的代码中运行良好。但无论如何,你也是对的。当我将uint更改为Int32时,我的sp也不会给我错误!请注意,uint
仅表示4个字节,而不是8个字节。无法真正测试这一点,但IDE将0x0000000000000DBF检测为Int32,而不是UInt32。因此,您的工作示例和第一个非工作示例并不相同。如果您使用int而不是uint,它是否有效?@Tim JonSkeet建议的解决方案在我的代码中运行良好。但无论如何,你也是对的。当我将uint更改为Int32时,我的sp也不会给我错误!请注意,uint
仅表示4个字节,而不是8个字节。无法真正测试这一点,但IDE将0x0000000000000DBF检测为Int32,而不是UInt32。因此,您的工作示例和第一个非工作示例并不相同。如果您使用int而不是uint,它是否有效?@Tim JonSkeet建议的解决方案在我的代码中运行良好。但无论如何,你也是对的。当我将uint更改为Int32时,我的sp也不会给我错误!请注意,uint
仅表示4个字节,而不是8个字节。无法真正测试这一点,但IDE将0x0000000000000DBF检测为Int32,而不是UInt32。因此,您的工作示例和第一个非工作示例并不相同。如果您使用int而不是uint,它是否有效?@Tim JonSkeet建议的解决方案在我的代码中运行良好。但无论如何,你也是对的。当我将uint更改为Int32时,我的sp也不会给我错误!