Member 14192879 Ответов: 1

Как Сохранить pdf в mysql через C# winform и retreive в gridview


Как Сохранить PDF в MySQL через C# Winform и получить его в gridview. Предварительный просмотр откройте в adobe reader выбранную строку gridview.

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

if (openFileDialog.ShowDialog() == DialogResult.OK)
{label1.Text = openFileDialog.FileName;}
string[] FullFileName = openFileDialog.FileName.Split('\\');
string fname = FullFileName.Last().ToString();
byte[] FileContent;
FileStream fs = new FileStream(openFileDialog.FileName, FileMode.Open);
BinaryReader bs = new BinaryReader(fs);
FileContent = bs.ReadBytes(Convert.ToInt32(fs.Length));
fs.Close();
bs.Close();
string Query = "insert into D (FileName,[File]) values(@name,@data)";
MySqlCommand cmd = new MySqlCommand(Query, con);
con.Open();
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@name", fname);
cmd.Parameters.AddWithValue("@data", FileContent);
cmd.ExecuteNonQuery();
MessageBox.Show("data saved");

мои ошибки таковы:
MySql.Data.MySqlClient.MySqlException: 'You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[File]) values('Receipt.pdf',_binary '%PDF-1.3
%âãÏÃ

Richard MacCutchan

Снимите квадратные скобки с названия столбца "файл".

Member 14192879

какой тип данных я должен использовать для столбца "файл"?

Richard MacCutchan

Посмотрите на документацию MySQL для того, что лучше всего подходит для вашего содержимого данных: MySQL :: MySQL 8.0 справочное руководство :: 11.4.3 типы BLOB и TEXT[^]

Member 14192879

не могли бы вы сказать мне, как можно получить загруженный pdf-файл в GridView?

1 Ответов

Рейтинг:
7

OriginalGriff

MySql не использует квадратные скобки вокруг неоднозначных или "разнесенных" имен столбцов, вместо этого он использует обратные кавычки:

INSERT INTO D (FileName, `File`) Values (...


Member 14192879

КАК Я МОГУ ПОЛУЧИТЬ ПРЕДЫДУЩИЙ СОХРАНЕННЫЙ ФАЙЛ PDF?

OriginalGriff

Только не кричи.

Member 14192879

DataTable dt = новый DataTable();
MySqlDataReader myReader = null;
MySqlCommand команду cmd = новый MySqlCommand("выберите `именем` от `D`, где `ClientID как` как '%" + textBox31.Текст + "%'", кон);
кон.Открыть();
myReader = cmd.Метода executereader();
пока (myReader.Читать())
{
//label115.Text = dataGridView1.CurrentRow.Ячейки[1].Значение.Метод toString();
label115.Text = (myReader["FileName"].Метод toString());
}
кон.Рядом();
мой читатель.Закрывать();



частная label115_Click недействительным(объект отправителя, EventArgs в электронной)
{
axAcroPDF1.в src = label115.Текст;
}



ЭТО ПРАВИЛЬНЫЙ КОД?