我正在尝试将文档插入数据库中的表中,但是我继续遇到此错误:
操作符类型冲突:varbinary(max)与文本不兼容
任何方向都将非常有帮助。
Document表有很多列,我只是选择了这两个,以为我不需要所有50列,而大多数列都是空的。这两个列都被设置为(text,null),因为所有列中的大多数都为(text,null)。
我希望我不需要对数据库进行任何更改,并且有一种方法可以更改代码,以便文件可以正确地填充到Documents表中。
这是我的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;
}
}