Как сохранить DataSet после внесения изменений в базу данных? - PullRequest
1 голос
/ 14 августа 2011

если у меня есть DataSet с именем myDs, и я редактирую поле в нем путем прямого доступа в цикле, как показано ниже:

for (int i = 0; i < myDS.Tables[TableName].Rows.Count; i++)
{

    //some function or web method to get the id value of the record being updated
    int n = getNewNumber();

    //updating the dataset record according to some condition
    if (n == 0)
    {
        myDS.Tables[TableName].Rows[i]["id"] = n;
        myDS.Tables[TableName].Rows[i]["description"] = "some data";
    }
    else
    {
        myDS.Tables[TableName].Rows[i]["id"] = n;
        myDS.Tables[TableName].Rows[i]["description"] = "new data";
    }
}

Как я делаю эти изменения в базе данных так, как я ее вижув GridView, когда я делаю databind (), но на базу данных это не влияет, и я пытаюсь использовать методы заполнения и обновления OdbcDataAdapter и OdbcCommandBuilder?

Ответы [ 3 ]

1 голос
/ 15 августа 2011

Попробуйте процесс TableAdapter.Update, показанный в этой статье: Как: обновить записи в базе данных .

Кроме того, убедитесь, что у вас есть не только необходимый доступ к базе данных, к которой вы пытаетесь подключиться, но и разрешение обновлять записи в нужной таблице. У вас может быть проблема с конфигурацией SQL Server, которая препятствует обновлению вашего кода.

0 голосов
/ 16 ноября 2015

Вы должны ввести две строки после цикла

myDS.AcceptChanges();
adapter.Update(myDS.Tables[TableName]);
0 голосов
/ 14 августа 2011

Поскольку это odbc, вы можете использовать OdbcDataAdapter;затем позвоните:

adapter.Update(myDS.Tables[TableName]);

заявление об отказе: лично я никогда не использую DataSet для .... чего-либо.YMMV.

...