Как автоматизировать csv-файл для доступа к БД с помощью спецификации импорта в C#
Привет,
Я новичок в этом деле .Сетевые технологии.
у меня есть задача, то есть получить данные из oracle в виде datatable,проверить нулевые значения, заменить одинарную кавычку на двойную кавычку в Столбцах datatable и вставить в базу данных access.
я написал код, но его загрузка занимает 3 часа.
а также недавно после вставки нескольких записей я получил ошибку "операция должна использовать обновляемый запрос", но я использую insert query, я не написал никакого запроса обновления.
Теперь мой менеджер попросил меня автоматизировать csv-файл для доступа к БД с помощью спецификации импорта в c#.
Бек импорт спецификации автоматически обрабатывает нулевых и единичных значений котировки.
Как это сделать , дайте мне идею.
Заранее спасибо.
Что я уже пробовал:
Мой предыдущий код таков :но требуется много времени, чтобы вставить его в базу данных access.
for (int i = 0; i < dtAEDetails.Rows.Count; i++) { for (int j = 0; j < dtAEDetails.Columns.Count; j++) { sOffice = "'" + dtAEDetails.Rows[i][0].ToString() + "'"; sInsertValues = sOffice + ","; sAe = "'" + dtAEDetails.Rows[i][1].ToString() + "'"; sInsertValues = sInsertValues + sAe + ","; sDesc1 = "'" + dtAEDetails.Rows[i][7].ToString().Replace ("'", "''") + "'";//replacing single quote into double quote sInsertValues = sInsertValues + sDesc1 + ","; if (!string.IsNullOrEmpty(dtAEDetails.Rows[i][9].ToString())) { sPrinc = "'" + dtAEDetails.Rows[i][9].ToString().Replace("'", "''") + "'"; sInsertValues = sInsertValues + sPrinc + ","; } else { sInsertValues = sInsertValues + "null" + ",";//checking null value } insertAEdetails.ParmValue = sInsertValues; insertAEdetails.InsertIntoAccess();//inserting into access db this concatenated string. } } public void InsertIntoAccess() { string sQueryToRun = string.Empty; //set the database connection OleDbConnection oleDbConn = new OleDbConnection(strAccessConn); try { //prep sqlManager SqlManager sqlManager = SqlManagerUtil.GetSqlManager(sSqlXmlFile); //Get the query from sql manager SqlExecution execution = sqlManager.GetSqlExecution(sQueryName.ToString()); sQueryToRun = execution.SqlText; sQueryToRun = sQueryToRun.Replace(":ValueString", sParmValue.ToString()); //prep the command OleDbCommand InsCmd = new OleDbCommand(sQueryToRun.ToString(), oleDbConn); oleDbConn.Open(); //open the connection InsCmd.ExecuteNonQuery(); //execute the query } catch (Exception ex) { Logger.WriteMessage(" Error in InsertIntoAccess"); Logger.WriteMessage(" " + ex.Message); throw ex; } finally { // if connection is open close it if (oleDbConn.State == ConnectionState.Open) { oleDbConn.Close(); } } }