0
我需要從代碼運行存儲過程。其中一個輸入參數是表格的rowVersion。 rowVersion是一個字節數組({0,0,0,0,0,0,13,131},即db中的0x0000000000000DBF)。因此,如果以這種方式添加rowVersion:在C中將字節數組轉換爲十六進制#
cmd.Parameters.AddWithValue("@myPKRowversion", 0x0000000000000DBF);
我的sp正在工作。但是,當我將它添加喜歡這裏:
uint a = 0x0000000000000DBF;
cmd.Parameters.AddWithValue("@myPKRowversion", a);
,或者如果我轉換字節數組字符串,如:
string a = "0x0000000000000DBF";
cmd.Parameters.AddWithValue("@myPKRowversion", a);
我的SP是行不通的。 我應該怎樣做才能使我的工作?
注意'uint'僅代表4個字節,而不是8 –
無法真的測試了這一點,但0x0000000000000DBF被IDE檢測爲Int32,而不是UInt32。所以你的工作示例和你的第一個非工作示例是不一樣的。如果使用int而不是uint,它會起作用嗎? – Tim
@ Jon解決方案,JonSkeet建議在我的代碼中正常工作。但無論如何,你也是對的。當我將uint更改爲Int32時,我的sp也不會給我錯誤! – Sasha