У меня есть Excel листа (названный в $ Лист1) и таблицы SQL (названный как пользователей) с таким же Формиатом, который представлен нижеКак вставить весь DataTable в Sql таблицу сразу в C#
ID | UserName | FirstName | LastName | DateOfBirth |
1 | robert | robert | poinan | 1984 |
2 | joy | joy | rob | 1990 |
I Прочитали целые данные листа первенствовать в DataSet (Названный как «йз„) теперь я хочу, чтобы вставить весь набор данных (который является“DS„) в SQL таблицу (которая“Пользователи»)
Я использую для цикла (можно также использовать цикл Еогеаспа) вставить «ца» (DataSet) строки по одному в пользователь (Sql таблицы) таблицы
sqlConn.Open();
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
SqlCommand cmd = new SqlCommand("INSERT INTO [Users] ([ID],[UserName],[FirstName],[LastName],[DateOfBirth]) VALUES(@ID,@UserName,@FirstName,@LastName,@DateOfBirth))", sqlConn);
cmd.Parameters.AddWithValue("@ID", ds.Tables[0].Rows[i][0].ToString());
cmd.Parameters.AddWithValue("@UserName", ds.Tables[0].Rows[i][1].ToString());
cmd.Parameters.AddWithValue("@FirstName", ds.Tables[0].Rows[i][2].ToString());
cmd.Parameters.AddWithValue("@LastName", ds.Tables[0].Rows[i][3].ToString());
cmd.Parameters.AddWithValue("@DateOfBirth", ds.Tables[0].Rows[i][4].ToString());
cmd.ExecuteNonQuery();
}
}
sqlConn.Close();
в этом коде я столкнулся много проблем один из них, если есть какая-либо ошибка при вставке строки, остановка программы, но строки, которые были вставлены раньше, существуют в базе данных sql в следующий раз, когда я пытаюсь запустить эту программу, строки данных дублируются. У меня есть миллионы записей. если я хочу проверить строку данных в таблице sql, для выполнения всего процесса требуется много времени.
My quetion есть. Есть ли способ, чтобы вставить весь 'DataTable (который находится в DataSet)' в пользователей таблицу сразу
Нечто подобное
INSERT INTO [Users](ID, FirstName,LastName,DateOfBirth)
SELECT ID, FirstName,LastName,DateOfBirth FROM ds.Tables[0]
;
Почему вы не можете использовать SqlBulkCopy .PLS обратитесь к этому документу http://www.codeproject.com/Tips/636719/Import-MS-Excel-data-to-SQL-Server-table-using -Csh – user2526236
, но что, если существуют разные типы данных? –
Спасибо @ user2526236 :-) –