sau*_*yal 5 c# sql asp.net visual-studio
我试图将图像从fileupload控件保存到数据库中
public Byte[] bytes;
Stream fs = FileUpload1.PostedFile.InputStream;
BinaryReader br = new BinaryReader(fs);
bytes = br.ReadBytes((Int32)fs.Length);
SqlDataSource2.Update();
protected void SqlDataSource2_Updating(object sender, SqlDataSourceCommandEventArgs e)
{
e.Command.Parameters["@project_file"].Value = bytes;
}
Run Code Online (Sandbox Code Playgroud)
我的数据库project_file字段设置为varbinary(MAX),
但这是一个错误
参数'@project_file'超出了sql_variant数据类型的大小限制.
请提出一些解决方案
这是MSDN对binary和varbinary的引用:
可变长度的二进制数据.n可以是1到8,000之间的值.max表示最大存储大小为2 ^ 31-1个字节.存储大小是输入数据的实际长度+ 2个字节.输入的数据长度可以是0个字节.varbinary的ANSI SQL同义词是二进制变量.
varbinary(MAX) 可以容纳~2GB大小的图像.
解决您的问题:
您忘记在代码中指定类型.您需要设置正确的SqlDbType.
e.Command.Parameters["@project_file"].SqlDbType = SqlDbType.VarBinary
您还应该做什么我设置正确的大小.