Следующий псевдокод:
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.
Если это так, то почему я не могу иметь прямой доступ к одному UpdatableRecord внутри SqlCeResultSet, как только я наведу курсор с помощью Seek ()?
Если бы это было возможно, это позволило бы мне использовать:
CommonMethodToFillRowData(SqlCeUpdatableRecord parmRow) {
//end of story
}