sql server数据库保存图片或者其他小文件

简介: 原文: sql server数据库保存图片或者其他小文件 测试用sql server数据库保存图片或者其他小文件。 文件流字段用varbinary类型。 static void Main() { Application.
原文: sql server数据库保存图片或者其他小文件

测试用sql server数据库保存图片或者其他小文件。

文件流字段用varbinary类型。



        static void Main()
        {

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            AsposeHelper ah = new AsposeHelper();
            //ah.extractImagesToFiles();
            //bool success=RegHelper.SetData("test\\a\\a1","a1name","name_a111");
            //string data= RegHelper.GetData("test\\a\\a1","");
            //bool success = RegHelper.RemoveKey("", "test");

            DbHelper db = new DbHelper();
            string FilePath = @"F:\360data\重要数据\桌面\测试\";//目录
            string FileName = "001.txt";//要存到数据库的文件
            byte[] FileData = File.ReadAllBytes(FilePath + FileName);
            string Type1 = DateTime.Now.ToString("yyyyMMddHHmmss");
            string Type2 = Guid.NewGuid().IsNull("").Replace("-", "");
            if (FileData.LongLength < 10485760)
            {
                SqlParameter[] param = new SqlParameter[]{
                new SqlParameter("Type1",Type1),
                new SqlParameter("Type2",Type2),
                new SqlParameter("ImageName",FileName),
                new SqlParameter("ImageSize",GetFileSize(FileData.LongLength)),
                new SqlParameter("ImageData",FileData)
                };
                ////写入
                db.ExecuteNonQuery("insert into SystemImage([Type1],[Type2],[ImageName],[ImageSize],[ImageData]) values(@Type1,@Type2,@ImageName,@ImageSize,@ImageData)", param);
            }
            else
            {
                throw new Exception("文件不能大于10M");
            }
            FileData = null;

            //Application.Run(new Form1());

            ////查询,保存为文件
            DataRow dr = db.ExecuteDataRow("select * from SystemImage where imageName='展会平台首页 - 副本.jpg'");
            byte[] data = (byte[])dr["ImageData"];
            FileStream fs = new FileStream(@"F:\360data\重要数据\桌面\" + dr["ImageName"], FileMode.Create);
            //FileStream fs = new FileStream(@"F:\360data\重要数据\桌面\" + "1.txt", FileMode.Create);
            fs.Write(data, 0, data.Length);
            fs.Dispose();
            /*
            ---Sql server建表
            CREATE TABLE [dbo].[SystemImage](
                [Type1] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL,
                [Type2] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL,
                [ImageName] [nvarchar](200) COLLATE Chinese_PRC_CI_AS NOT NULL,
                [ImageSize] [nvarchar](20) COLLATE Chinese_PRC_CI_AS NULL,
                [ImageData] [varbinary](max) NOT NULL
            )
             */

        }
        public static string GetFileSize(long length)
        {
            string len = "";
            if (length > 1048576)//大于1M
            {
                len = string.Format("{0:f2}MB", ((decimal)length) / 1048576M);
            }
            else if (length > 1024)//大于1M
            {
                len = string.Format("{0:f2}KB", ((decimal)length) / 1024M);
            }
            else
            {
                len = string.Format("{0:f2}B", length);
            }
            return len;
        }

用数据库保存文件不宜过大,本例只是测试文件保存和读取,实际项目中不建议保存图片或者文件到数据库,一般就保存到服务器,把文件的路径保存到数据库就行了。

下面这图是数据库查询结果;

从数据库导出的文件也和原文件一样。





目录
相关文章
|
8月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
1428 152
|
8月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎,提供高性价比、稳定安全的云数据库服务,适用于多种行业与业务场景。
1040 156
|
8月前
|
SQL 人工智能 Linux
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
716 5
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
|
7月前
|
SQL 存储 监控
SQL日志优化策略:提升数据库日志记录效率
通过以上方法结合起来运行调整方案, 可以显著地提升SQL环境下面向各种搜索引擎服务平台所需要满足标准条件下之数据库登记作业流程综合表现; 同时还能确保系统稳健运行并满越用户体验预期目标.
404 6
|
8月前
|
关系型数据库 分布式数据库 数据库
阿里云数据库收费价格:MySQL、PostgreSQL、SQL Server和MariaDB引擎费用整理
阿里云数据库提供多种类型,包括关系型与NoSQL,主流如PolarDB、RDS MySQL/PostgreSQL、Redis等。价格低至21元/月起,支持按需付费与优惠套餐,适用于各类应用场景。
|
SQL 数据库
如何快速备份还原Sql Server 数据库
备份数据库 选择你要备份的数据库,鼠标右键单击,选择任务-备份   弹出备份数据库窗口,选择添加    弹出选择备份目标窗口,点击浏览,选择存放备份数据库的目录,输入文件名,后缀名输入.bak,点击确定,确定,备份完成     还原数据库  鼠标右键单击数据库,选择还原文件和文件   ...
1603 0
|
数据库 SQL 数据安全/隐私保护

热门文章

最新文章