Сбой пакета из-за System.Data.SqlClient.SqlException (0x80131904): неверный синтаксис рядом с 's' - PullRequest
2 голосов
/ 23 апреля 2019

Мой пакет был в порядке в течение пары дней, и сегодня, когда я пытался запустить его, он переносил несколько столбцов из первого файла в папке и заканчивался сбоем.

Я получаю ошибку:

System.Data.SqlClient.SqlException (0x80131904): неправильный синтаксис рядом с '.

Незакрытая цитатапометьте после строки символов
'', 'C: \ Users \ svojnovic \ Dropbox \ test \ 2016-08-31 Scale Sheet.csv') '. Race 3 *).

Мой код вЗадача сценария:

SqlConnection myADONETConnection = new SqlConnection();
myADONETConnection = (SqlConnection)(Dts.Connections["DBConn"].AcquireConnection(Dts.Transaction) as SqlConnection);

// Writing Data of File Into Table
int counter = 0;
string line;
// MessageBox.Show(fileName);

System.IO.StreamReader SourceFile = new System.IO.StreamReader(fileName);

while ((line = SourceFile.ReadLine()) != null)
{
    if (counter > 0)
    {
         string query = "Insert into " + TableName + " Values ('";
         query += line.Replace(FileDelimiter, "','") + "','" + fileName.Replace(SourceFolderPath,"") + "')";

         MessageBox.Show(query.ToString());

         SqlCommand myCommand1 = new SqlCommand(query, myADONETConnection);
         myCommand1.ExecuteNonQuery();
     }

     counter++;
 }

 SourceFile.Close();

 // move the file to archive folder after adding datetime to it
 File.Move(fileName, ArchiveFolder + "\\" + (fileName.Replace(SourceFolderPath, "")).Replace(FileExtension, "") + "_" + datetime + FileExtension);
 Dts.TaskResult = (int)ScriptResults.Success;

1 Ответ

1 голос
/ 23 апреля 2019

Зачем импортировать плоский файл в задачу скрипта ??

Вопрос можно задать по-другому: В чем преимущество использования SSIS, если вы скорее импортируете плоский файл в задачу скрипта?чем задача потока данных?

Вы можете просто добавить задачу потока данных и использовать источник плоского файла и назначение OLEDB для импорта данных из плоского файла в таблицу SQL.А с другой стороны, это устранит риск внедрения SQL, вызванный объединением команды SQL.


Другие методы

(1) ВСТАВКА SQL BULK

(2) SQL OPENROWSET

(3) Параметризованный запрос C #


Полезное сообщение

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