无法创建大小为8091的行,该行大于允许的最大行大小8060

时间:2017-10-16 08:43:27

标签: sql-server vb.net

我想将文件保存到我的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

1 个答案:

答案 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配置以获取最大数据包大小,否则在尝试存储大文件时会出错。