Net Core教程

C# 读取 sql server 大型字段(单个字段大小超过10G)

本文主要是介绍C# 读取 sql server 大型字段(单个字段大小超过10G),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

如果电脑内存够大,并且只为这一个程序服务,当然这不是问题,可大多数场景并非如此。

var file = @"a.zip";
using (var conn = new SqlConnection("Data Source=.;Integrated Security=SSPI;Initial Catalog=ABC"))
{
    conn.Open();
    var sql = "SELECT TOP 1 BulkColumn FROM OPENROWSET(BULK '" + file + "', SINGLE_BLOB) f";
    using (var cmd = new SqlCommand(sql, conn))
    {
        cmd.CommandTimeout = 0;
        using (var dr = cmd.ExecuteReader(CommandBehavior.SequentialAccess))
        {
                        
            int bufferSize = 100;
            byte[] buffer = new byte[bufferSize];
            int readBytes = 0;
            long index = 0;

            using (FileStream fs = new FileStream(@"b.zip", FileMode.Create, FileAccess.Write, FileShare.None))
            {
                while (dr.Read())
                {
                    while ((readBytes = (int)dr.GetBytes(0, index, buffer, 0, bufferSize)) > 0)
                    {
                        fs.Write(buffer, 0, readBytes);
                        index += readBytes;
                    }
                }
            }
        }
    }
}

 

这篇关于C# 读取 sql server 大型字段(单个字段大小超过10G)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!