以下爲僞代碼:SQLCE - Upsert(更新或插入) - 如何使用常用方法準備行?
SqlCeResultSet myResultSet = cmd.ExecuteResultSet(Options...etc);
bool found = myResultSet.Seek();
if found {
//do an Update
myResultSet.Read() //make current
//At this point we have a cursor positioned at a row to be edited
myResultSet.SetString(1, "value for col 1");
myResultSet.SetString(2, "value for col 2");
//... etc...
myResultSet.SetString(100, "value for col 100");
//i want to replace above with: CommonMethodToFillRowData(someRow)
//finally update
myResultSet.Update();
} else {
//do an insert
SqlCeUpdatableRecord myRec = myResultSet.CreateRecord();
//set primaryKey
myRec.SetInt32(0, pkValue);
//At this point we have a cursor positioned at a row to be edited
myRec.SetString(1, "value for col 1");
myRec.SetString(2, "value for col 2");
//... etc...
myRec.SetString(100, "value for col 100");
//i want to replace above with: CommonMethodToFillRowData(someRow)
//finally insert
myResultSet.Insert(myRec);
}
根據上述內容,如果我有100列的準備,它必須被重複兩次;我想要的是一些CommonMethodToFillRowData();但是,我使用這種方法的參數類型是什麼?
CommonMethodToFillRowData(SqlCeResultSet or SqlCeUpdatableRecord ? parmRow) {
parmRow.SetInt32(col1, value1)
parmRow.SetString(col2, value2)
...etc.
parmRow.SetString(100, "value for col 100");
}
從MSDN DOCO直接引用上SqlCeUpdatableRecord類別: - >表示從數據源可更新的值的行。 SqlCeResultSet對象包含一個或多個UpdatableRecords。
如果是這樣,爲什麼我不能直接訪問SqlCeResultSet中的單個UpdatableRecord,一旦我通過Seek()定位遊標?
如果這是可能的,這將使我的使用方法:
CommonMethodToFillRowData(SqlCeUpdatableRecord parmRow) {
//end of story
}
你是怎麼得到這個JoeDotNot? – ETFairfax 2011-02-28 22:40:32
我也被捕了... – 2011-03-31 07:28:15
@Sébastien - 請參閱我的「最後一分鐘」的答案。 – Greg 2011-04-07 04:46:29