我想将文件保存到我的SQL Server;列类型为varbinary(max)
。
当我尝试保存时,出现错误:
无法创建大小为8091的行,该行大于允许的最大行大小8060.
这是代码
Using fs As New IO.FileStream(OpenFileDialog2.FileName, IO.FileMode.Open, IO.FileAccess.Read)
If fs.Length <= Int32.MaxValue Then
Dim bytes(CInt(fs.Length - 1)) As Byte
fs.Read(bytes, 0, CInt(fs.Length))
Dim docfile As New SqlParameter("@d39", SqlDbType.VarBinary)
docfile.Value = bytes
cmd.Parameters.Add(docfile)
End If
End Using
OP的评论 :表架构:
CREATE TABLE [dbo].[empolyee] (
[Emp_code] [int] NOT NULL
,[arabicname] [nchar](250) NOT NULL
,[worktime] [nvarchar](250) NULL
,[filedata] [varbinary](max) NULL
,CONSTRAINT [PK_empolyee] PRIMARY KEY CLUSTERED ([Emp_code] ASC) WITH (
PAD_INDEX = OFF
,STATISTICS_NORECOMPUTE = OFF
,IGNORE_DUP_KEY = OFF
,ALLOW_ROW_LOCKS = ON
,ALLOW_PAGE_LOCKS = ON
) ON [PRIMARY]
) ON [PRIMARY] GO
答案 0 :(得分:0)
通过FileData列的名称,我认为您尝试将文件存储在数据库中。
如果这是正确的,请将列类型更改为blob。
TINYBLOB L+1 bytes, where L < 28 256 bytes
BLOB L+2 bytes, where L < 216 65 kilobytes
MEDIUMBLOB L+3 bytes, where L < 224 16 megabytes
LONGBLOB L+4 bytes, where L < 232 4 gigabytes
如果您要管理大文件,还需要检查sql配置以获取最大数据包大小,否则在尝试存储大文件时会出错。