我的数据库中有一个timestamp列,用作rowversion。在将数据从数据库中拉出时,我们得到了rowversion,我将其转换为byte []。到目前为止,一切都按预期进行。
在更新数据时,我想(在存储过程中)检查rowversion是否相同,即将从代码传递的数据与存储在数据库中的数据进行比较。如果不同,我将中止更新,否则会更新数据。
现在我的问题是,如何将byte []传递给存储过程。存储过程中的参数类型是时间戳。
注意:我使用企业库在c#中进行所有数据库操作。我无法更改存储过程或数据类型。受限制。
答案 0 :(得分:0)
下面的代码按预期工作
public static TestMethod(....,byte[] rowVersion)
{
.........
dbConnection_.AddInParameter(dbcommand, "@row_version", DbType.Binary,rowVersion);
...........
}
以上代码使用的是企业库。我认为这会对某人有所帮助。
谢谢所有试图在这里提供帮助的人。干杯..!
答案 1 :(得分:-1)
见下面的代码:
contract FinishedGoodManager{
struct FinishedGood{
string ProductionManagerId;
string ProductId;
string SerialNum;
string RMArray;
}
FinishedGood[] finishedGoods;
enum ErrorCodes {
NULL,
SUCCESS,
ERROR,
NOT_FOUND,
EXISTS,
RECURSIVE,
INSUFFICIENT_BALANCE
}
mapping (string => uint) serialNumberToIdMap;
function stringToBytes32(string memory source) returns (bytes32 result) {
assembly {
result := mload(add(source, 32))
}
}
function b32(string memory source) constant returns (bytes32) {
return stringToBytes32(source);
}
function FinishedGoodManager() {
finishedGoods.length = 1;
}
function getFinishedGood(string serialNum) constant returns (string,string,string,string) {
uint finishedGoodRowId = serialNumberToIdMap[serialNum];
return (finishedGoods[finishedGoodRowId].ProductionManagerId,finishedGoods[finishedGoodRowId].ProductId,finishedGoods[finishedGoodRowId].SerialNum,finishedGoods[finishedGoodRowId].RMArray);
}
function exists(string serialNum) constant returns (bool) {
return serialNumberToIdMap[serialNum] != 0;
}
function createFinishedGood(string productionManagerId,string productId,string serialNum,string rmArr) constant returns(string,uint){
// name must be < 32 bytes
if (bytes(serialNum).length > 32) return ("ERROR",0);
// fail if username exists
if (exists(serialNum)) return ("EXISTS",1);
// add finishedGood
uint index = finishedGoods.length+1;
serialNumberToIdMap[serialNum] = index;
finishedGoods.push(FinishedGood(
productionManagerId,
productId,
serialNum,
rmArr
));
return (finishedGoods[0].SerialNum,finishedGoods.length);
}
}