Как решить конфликт типов операндов: varbinary (max) несовместим с текстом - PullRequest
0 голосов
/ 05 октября 2018

Я пытаюсь вставить документы в таблицу в БД, но продолжаю получать эту ошибку:

Столкновение с типом операнда: varbinary (max) несовместимо с текстом

любое направление будет чрезвычайно полезным.

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

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

Вот мой HttpPost:

    [HttpPost]
    public void UploadFiles()
    {
        if (!(Request.Files?.Count > 0)) return;
        var filesCount = Request.Files.Count;
        try
        {
            for (int i = 0; i < filesCount; i++)
            {
                var file = Request.Files[i];
                var fileName = Path.GetFileName(file?.FileName);
                if (fileName != null)
                {

                    var fileBytes = new byte[file.InputStream.Length];
                    file.InputStream.Read(fileBytes, 0, fileBytes.Length);
                    file.InputStream.Close();

                    var cmdStr = "insert into [dbo].[Documents] 
                    (DocumentName, DocumentLink) values(@val,@filename)";
                    using (var connection = new SqlConnection(con))
                    {
                        connection.Open();
                        var cmd = new SqlCommand(cmdStr, connection);
                        cmd.Parameters.AddWithValue("@val", fileBytes);
                        cmd.Parameters.AddWithValue("@filename", fileName);
                        cmd.ExecuteNonQuery();
                    }
                }
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...