Данные не вставлены в таблицу базы данных после обновления SqlDataAdapter - PullRequest
2 голосов
/ 07 сентября 2011

Я хочу вставить данные в таблицу базы данных, используя SqlDataAdapter из одной таблицы базы данных в другую таблицу базы данных, но без эффекта после импорта строк из другой таблицы

Код

DataTable table1 = objDataset1.Tables[0];
DataTable tb = table1.Clone();
DataSet ds = new DataSet();

string ConnString = @"DataSource=.\SQLExpress;Database=WICC;Trusted_Connection=true;Connection Timeout=180;";

SqlConnection con = new SqlConnection(ConnString);
SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM tblSitePMRDetail", con);
SqlCommandBuilder build = new SqlCommandBuilder(adapter);

adapter.Fill(tb);
con.Open();

foreach (DataRow dr in table1.Rows)
{
    tb.ImportRow(dr);
}

adapter.Update(tb);

con.Close();

Почему таблица не обновляется?

1 Ответ

2 голосов
/ 07 сентября 2011

ImportRow завершится ошибкой, если нарушены ограничения, и будет только ADD, поэтому проверьте количество строк в вашей таблице в конце.Вы, вероятно, обнаружите, что ни один из них не добавляется, особенно если задействован первичный ключ.

Учитывая, что tb является Cloned из table1, я бы посоветовал вам пропустить адаптер.в таблице 1 неверно.

Или вы можете попробовать использовать tb.Load (table1.CreateDataReader (), LoadOption.Upsert);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...