Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在c中将字节数组转换为十六进制#_C#_Sql - Fatal编程技术网

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

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

我需要从代码运行一个存储过程。其中一个输入参数是表的rowVersion。rowVersion是一个字节数组({0,0,0,0,0,13,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正常工作

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

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也不会给我错误!