Как вставить видео в Sql-Server с помощью C #? - PullRequest
2 голосов
/ 28 марта 2019

Когда я пытаюсь сохранить видео на сервере Sql, я сталкиваюсь с такой ошибкой ниже: Модуль фильтрации запросов настроен на отклонение запроса, который превышает длину содержимого запроса.

//Converting a file Uploaded in byte before inserting it in DB.

using (BinaryReader br = new BinaryReader(fs))
{
   byte[] bytes = br.ReadBytes((Int32)fs.Length);
   string constr = (@"Data Source=(localdb)\MSSQLLocalDB;....");               

   using (SqlConnection con = new SqlConnection(constr))
   {
      string query = "insert into tblFiles values (@Name, @ContentType, @Data)";

      using (SqlCommand cmd = new SqlCommand(query))
      {
         //// ????
      }
   }
}

// Вид таблицы, которую я использую в Sql_Server

CREATE TABLE tblFiles(Id int IDENTITY PRIMARY KEY,Name 
           VARCHAR(100) NOT NULL,
            ContentType NVARCHAR(4000)NOT NULL, Data VARBINARY(MAX)NOT 
              NULL);

Ответы [ 2 ]

1 голос
/ 28 марта 2019

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

Хранение изображений в БД - да или нет?

1 голос
/ 28 марта 2019

просто добавьте его с параметрами, как и для любых других типов данных:

cmd.Parameters.Add("@Name", SqlDbType.VarChar).Value = name;
cmd.Parameters.Add("@Data", SqlDbType.VarBinary).Value = bytes;
cmd.Parameters.Add("@ContentType", SqlDbType.NVarChar).Value = contentType;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...