Member 12805826 Ответов: 1

Просмотр файлов в представлении таблицы данных, когда пользователь присоединяет несколько файлов и файлы хранятся в таблице SQL в форме windows с использованием языка C#


Всем Привет,

Вот требование.
Пользователь может прикрепить несколько файлов(может be.doc,. pdf что угодно), то файл должен быть сохранен в базе данных, когда он нажимает кнопку отправки. эти файлы (содержимое файла), которые прикрепляет пользователь, должны отображаться в виде таблицы данных. Я могу прикрепить один файл и просмотреть его в виде таблицы данных, но поскольку таблица sql имеет уникальный столбец ID, она может хранить и извлекать только один файл. Я знаю, что мне нужно создать вторичную таблицу для реализации логики множественных вложений, но не могу получить подключение и код для нее.

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

// Открыть файл для чтения с помощью пути к файлу
Файлового потока ФС = новый хранилище FileStream(текстовое поле textbox1.Текст, Система.ИО.Содержит filemode.Открытые, Системы.ИО.Флагами fileaccess.Читать);

// Добавить файловый поток в двоичный считыватель
BinaryReader BR= новый BinaryReader(FS);

// получить общую длину файла в байтах
long allbytes = new FileInfo(textBox1. Text).Длина;

// чтение всего файла в буфер
FileBytes = BR. ReadBytes ((Int32)allbytes);

// закрыть все экземпляры
ФС.Закрывать();
ПС.Распоряжаться();
БР.Рядом();
}
поймать (исключение бывший)
{
Ящик для сообщений.Show ("ошибка при чтении файла" + ex. ToString());
}

gggustafson

Где вы храните имена файлов, которые пользователь хочет прикрепить?

1 Ответов

Рейтинг:
2

Mycroft Holmes

Предполагается, что вы прикрепляете файлы к чему-то. Поэтому вам нужна запись контейнера для прикрепления загрузок. Так что да, вам нужно создать вторую таблицу (ContainerTable)

Контейнерный
ContainerTableID (первичный ключ = 123)

Привязанность
AttachmentID (первичный ключ = 1)
ContainerTableID (foriegn ключ к ContainerTable = 123)


Member 12805826

Это форма windows, и эта форма имеет
1. где пользователь может прикрепить несколько файлов (любой тип файла), и эти прикрепленные файлы должны перейти в таблицу A и быть сохранены как Attachment1, attachments2,--(мы можем ограничить количество вложений до 5 с различными расширениями) в разных столбцах соответственно для одного и того же идентификатора)
пример: если идентификатор из таблицы а равен 1234. Я должен получить вложения в разных столбцах, таких как
Приложение 1 ID – 1234
Приложение 2 ID -1234 в разных столбцах
И эти файлы должны быть отображены в виде таблицы данных
Я могу заставить один файл работать правильно, как я хотел, я даже могу видеть содержимое файлов в представлении таблицы данных.
Проблема:
Я не могу получить один и тот же идентификатор для всех файлов, вложенных во вторичную таблицу, потому что столбец идентификатора первичной таблицы является уникальным идентификатором.
II нужно написать sql-запрос, чтобы получить различные вложения с одинаковым идентификатором, как это
Приложение 1 ID – 1234
Приложение 2 ID -1234

заранее спасибо

Mycroft Holmes

Ваш дизайн неверен, ваша таблица вложений должна содержать информацию только об одном файле на запись. Должно быть 5 записей для 5 вложений с PK 123