передача файлов между клиентским компьютером и базой данных сервера с использованием C#

У меня есть эта база данных SQL на серверной машине в сети, и я хочу, чтобы любая из клиентских машин могла загружать и скачивать файлы в базу данных и из нее соответственно, где файлы будут сохранены в файловой системе сервера и их метаданные. будут храниться в базе данных.
Как лучше всего выполнить эту задачу? и как мне реализовать это с помощью приложения C # winform? спасибо заранее @_@


person Majd    schedule 23.12.2010    source источник
comment
Вы хотите, чтобы они загружали файлы из физического места на сервере базы данных или извлекали файлы, хранящиеся в самой базе данных?   -  person Ta01    schedule 23.12.2010
comment
возможный дубликат Как вставить и прочитать файл PDF в базу данных Sql Server 2005 с помощью C#   -  person tster    schedule 23.12.2010
comment
Вопросы, подобные этому, заставляют меня желать, чтобы были автоматические ответы ПОИСК В GOOGLE FIRST и автоответы СДЕЛАЙТЕ НЕМНОГО ИССЛЕДОВАНИЯ СЕБЯ.   -  person Charles Boyung    schedule 23.12.2010
comment
@Charles: это не подходит для этого сайта. Если ответ на SO, вы можете пометить его как обман. Но сказать, что информация находится в свободном доступе в сети, противоречит тому, что такое ТАК о человеке.   -  person jcollum    schedule 24.12.2010
comment
@ Charles Boyung Я искал об этом, чувак, и я знаю основные способы, но если ты заметил, я спрашиваю о лучших способах! не просто так! кроме того, все доступно в сети .. чем больше я ищу, тем больше нахожу .. но у меня есть время до завтра, чтобы закончить это .. поэтому мне нужен совет эксперта !! разве это не основная идея для SO? :С   -  person Majd    schedule 24.12.2010
comment
@RandomNoob .. Я только что объяснил то же самое в комментариях под ответом Дэвида :), и я перефразирую свой вопрос, чтобы сделать его более ясным.   -  person Majd    schedule 24.12.2010
comment
@jcollum - я видел МНОГО комментариев, говорящих людям одно и то же. Цель сайта НЕ состоит в том, чтобы делать работу людей за них. И есть много случаев, когда люди прямо говорят, что спрашивающий должен просто сам найти ответ в Интернете, поскольку это простой вопрос, на который может ответить простой поиск.   -  person Charles Boyung    schedule 26.12.2010


Ответы (1)


Почему вы хотите, чтобы файлы хранились в базе данных? Файловая система (которая, я уверен, есть и у рассматриваемого сервера) гораздо больше подходит для хранения и обслуживания файлов.

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

В этот момент вы будете взаимодействовать с ним так же, как с любой другой записью базы данных в вашем приложении (пропустив объяснение этого для краткости, недостатка в учебниках по этому вопросу нет), с дополнительным шагом преобразования в и из байтовых массивов для большого двоичного объекта. данные. Кроме того, много примеров.

Но я должен вернуться к своему первоначальному вопросу. Зачем помещать файлы в реляционную базу данных?

person David    schedule 23.12.2010
comment
База данных — это система архивирования компании, а клиенты — сотрудники компании. они должны иметь возможность загружать свои отчеты, файлы, задачи и т. д. в базу данных, чтобы предотвратить потерю данных, свести к минимуму использование физических файлов и облегчить поиск файлового метода. - person Majd; 24.12.2010
comment
@Majd: Несмотря на это, файловая система лучше подходит для реальных файлов. Информация о файлах может быть легко сохранена в базе данных. Но они могут загружать файлы в файловую систему, потерю данных можно предотвратить с помощью избыточности и резервного копирования (как вы думаете, где база данных хранит свои данные... на диске) и т. д. Вы, конечно, можете хранить файлы в базе данных как двоичные данные, это просто лучший подход в любом случае. Нет никаких причин не хранить файлы в файловой системе и реляционные данные в базе данных. - person David; 24.12.2010
comment
ооо .. вы неправильно поняли мой вопрос, и это явно моя ошибка, так как RandomNoob в первом комментарии тоже запутался в этом вопросе .. я перефразирую вопрос .. но сначала я объясню здесь .. файлы будут сохранены на серверную машину, а не в фактическую базу данных ... и я в основном спрашиваю о лучшем способе перемещения файлов с клиентской машины на серверную машину! и впоследствии сохраните информацию о файле в базе данных. надеюсь теперь все ясно - person Majd; 24.12.2010
comment
@Majd: SharePoint бесплатен (предоставляется лицензия Windows Server), имеет функции хранения документов и управления версиями и использует SQL Server в качестве серверной части. Зачем изобретать велосипед, если это бесплатно? - person John Saunders; 24.12.2010