ali_1 Ответов: 2

Могу ли я вставить большую строку hacing unicode в SQL ?


Всем Привет,

Инерции не проходя большую строку для SQL-запроса

Строка выглядит следующим образом:

%PDF-1.6
%����
69 0 obj
<</Linearized 1/L 777207/O 71/E 86298/N 13/T 776799/H [ 447 172]>>
endobj
75 0 obj
<</DecodeParms<</Columns 3/Predictor 12>>/Filter/FlateDecode/ID


его имея около 7 тысяч символов, как это . Могу ли я вставить в SQL с помощью запроса insert ?
Вот мой код следующим образом:
string readText = File.ReadAllText(@"D:\olefy001.txt");
           SqlCommand cmd = new SqlCommand("insert into FileContent values(" + readText + ")", con);
           cmd.ExecuteNonQuery();


Что я уже пробовал:

Использование объемной вставки его работа ! Но я должен передать его как строковую переменную внутри insert query is it possile ?

Выберите запрос не на выборку всех элементов после вставки через "массовая вставка", что делать ?

Richard MacCutchan

PDF-файл не должен рассматриваться как строка, и хранить такие большие записи в вашей базе данных нецелесообразно. Лучше сохранить файл на вашем сервере и сохранить адрес файла в базе данных.

ali_1

Спасибо , это работает , я нашел другой способ хранения

2 Ответов

Рейтинг:
14

Patrice T

SqlCommand cmd = new SqlCommand("insert into FileContent values(" + readText + ")", con);

Не решение вашего вопроса, но у вас есть еще одна проблема.
Никогда не создавайте SQL-запрос путем объединения строк. Рано или поздно вы сделаете это с помощью пользовательских вводов, и это откроет дверь к уязвимости под названием "SQL-инъекция", она опасна для вашей базы данных и подвержена ошибкам.
Одна кавычка в имени - и ваша программа выйдет из строя. Если пользователь вводит имя, например "Брайан О'Коннер", может привести к сбою вашего приложения, это уязвимость SQL-инъекции, и сбой-это наименьшая из проблем, вредоносный пользовательский ввод, и он продвигается к командам SQL со всеми учетными данными.
SQL-инъекция - Википедия[^]
SQL-инъекция[^]
Атаки SQL-инъекций на примере[^]
PHP: SQL-инъекция - руководство пользователя[^]
Шпаргалка по предотвращению инъекций SQL - OWASP[^]


ali_1

Спасибо за информацию.Я нашел другой способ сохранить это как строку

Рейтинг:
0

Richard Deeming

Простой:

string readText = File.ReadAllText(@"D:\olefy001.txt");
using (SqlCommand cmd = new SqlCommand("insert into FileContent values (@ReadText)", con))
{
    cmd.Parameters.AddWithValue("@ReadText", readText);
    cmd.ExecuteNonQuery();
}

Все, что вы хотели знать о SQL-инъекции (но боялись спросить) | Трой Хант[^]
Как я могу объяснить SQL-инъекцию без технического жаргона? | Обмен Стеками Информационной Безопасности[^]
Шпаргалка по параметризации запросов | OWASP[^]