C#写入和读取数据库blob字段代码

简介: 版权声明:欢迎评论和转载,转载请注明来源。 https://blog.csdn.net/zy332719794/article/details/7406945 读取本地文件,存入数据库blob字段。
版权声明:欢迎评论和转载,转载请注明来源。 https://blog.csdn.net/zy332719794/article/details/7406945

读取本地文件,存入数据库blob字段。

try
            {
                OpenFileDialog openFileDialog = new OpenFileDialog();
                openFileDialog.Filter = "*.*|*.*";
                openFileDialog.CheckFileExists = true;
                openFileDialog.Title = "选择上传的文件";

                if (openFileDialog.ShowDialog() != System.Windows.Forms.DialogResult.OK)
                {
                    return;
                }

                FileStream fileStream = new FileStream(
                    openFileDialog.FileName, FileMode.Open, FileAccess.Read);
      
		byte[] fileData = new byte[fileStream.length + 1];	
                fileStream.Read(fileData, 0, (int)fileStream.Length);

                string sql = "select * from TABLE_NAME where id = '" + id + "'";
                DataSet ds = OA.RsGet(sql, null);
                DataRow row;

                if (ds.Tables[0].Rows.Count > 0)
                {
                    row = ds.Tables[0].Rows[0];
                }
                else
                {
                    row = ds.Tables[0].NewRow();
                    
                    row["ID"] = Guid.NewGuid().ToString("N");
		    ds.Tables[0].Rows.Add(row);
		}
                row["FILE"] = fileData;
                row["otherField"] = roadWidth;
                
                if (OA.RsUpdate(ds) > 0)
                {
                    MessageBox.Show("保存成功!");
                }

            }
            catch(Exception exc)
            {
                MessageBox.Show("保存出错!请检查数据。\n" + exc.Message);
            }
         

读取数据库blob字段,存成本地文件。

/// <summary>
        /// 读取ORACLEBLOB字段到文件,返回文件名  Add by ZhaoYong  |2012-03-21|
        /// </summary>
        /// <param name="idValue">索引值</param>
        /// <param name="idField">索引字段名称</param>
        /// <param name="table">要查询的表名称</param>
        /// <param name="blobField">存放文件的字段名称</param>
        /// <param name="outFileFullName">保存到本地的文件名</param>
        /// <returns></returns>
        public static bool ReadBlobToFile(string idValue, string idField, string table, string blobField, string outFileFullName)
        {
            int PictureCol = 0;

            outFileFullName = outFileFullName.Trim();

            try
            {
                OracleCommand cmd = new OracleCommand("Select " + blobField + " From " + table +
                    " Where " + idField + "='" + idValue + "'", OracleDb.OracleDb.Connection);
                
                OracleDataReader myReader = cmd.ExecuteReader();
                myReader.Read();

                if (myReader.HasRows == false)
                {
                    return false;
                }

                byte[] b = new byte[myReader.GetBytes(PictureCol, 0, null, 0, int.MaxValue) - 1];
                myReader.GetBytes(PictureCol, 0, b, 0, b.Length);
                myReader.Close();

                System.IO.FileStream fileStream = new System.IO.FileStream(
                    outFileFullName, System.IO.FileMode.Create, System.IO.FileAccess.Write);
                fileStream.Write(b, 0, b.Length);
                fileStream.Close();
            }
            catch
            {
                return false;
            }

            return true;
        }







相关文章
|
5月前
|
机器学习/深度学习 算法 定位技术
Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现裂缝的检测识别(C#代码UI界面版)
本项目基于YOLOv8模型与C#界面,结合Baumer工业相机,实现裂缝的高效检测识别。支持图像、视频及摄像头输入,具备高精度与实时性,适用于桥梁、路面、隧道等多种工业场景。
602 27
|
5月前
|
存储 关系型数据库 数据库
附部署代码|云数据库RDS 全托管 Supabase服务:小白轻松搞定开发AI应用
本文通过一个 Agentic RAG 应用的完整构建流程,展示了如何借助 RDS Supabase 快速搭建具备知识处理与智能决策能力的 AI 应用,展示从数据准备到应用部署的全流程,相较于传统开发模式效率大幅提升。
附部署代码|云数据库RDS 全托管 Supabase服务:小白轻松搞定开发AI应用
|
6月前
|
人工智能 安全 机器人
无代码革命:10分钟打造企业专属数据库查询AI机器人
随着数字化转型加速,企业对高效智能交互解决方案的需求日益增长。阿里云AppFlow推出的AI助手产品,借助创新网页集成技术,助力企业打造专业数据库查询助手。本文详细介绍通过三步流程将AI助手转化为数据库交互工具的核心优势与操作指南,包括全场景适配、智能渲染引擎及零代码配置等三大技术突破。同时提供Web集成与企业微信集成方案,帮助企业实现便捷部署与安全管理,提升内外部用户体验。
667 12
无代码革命:10分钟打造企业专属数据库查询AI机器人
|
6月前
|
安全 druid Nacos
0 代码改造实现应用运行时数据库密码无损轮转
本文探讨了敏感数据的安全风险及降低账密泄漏风险的策略。国家颁布的《网络安全二级等保2.0标准》强调了企业数据安全的重要性。文章介绍了Nacos作为配置中心在提升数据库访问安全性方面的应用,并结合阿里云KMS、Druid连接池和Spring Cloud Alibaba社区推出的数据源动态轮转方案。该方案实现了加密配置统一托管、帐密全托管、双层权限管控等功能,将帐密切换时间从数小时优化到一秒,显著提升了安全性和效率。未来,MSE Nacos和KMS将扩展至更多组件如NoSQL、MQ等,提供一站式安全服务,助力AI时代的应用安全。
396 14
|
7月前
|
负载均衡 算法 关系型数据库
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
本文聚焦 MySQL 集群架构中的负载均衡算法,阐述其重要性。详细介绍轮询、加权轮询、最少连接、加权最少连接、随机、源地址哈希等常用算法,分析各自优缺点及适用场景。并提供 Java 语言代码实现示例,助力直观理解。文章结构清晰,语言通俗易懂,对理解和应用负载均衡算法具有实用价值和参考价值。
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
|
6月前
|
SQL 数据建模 关系型数据库
别光知道存数据库了,数据建模才是王道!(入门指南+实战代码)
别光知道存数据库了,数据建模才是王道!(入门指南+实战代码)
896 4
|
9月前
|
人工智能 前端开发 JavaScript
代码采纳率从 22% 到 33%,通义灵码辅助数据库智能编码实践
通义灵码本质上是一个AI agent,它已经进行了大量的优化。然而,为了更完美或有效地调用模型的潜在能力,我们在使用时仍需掌握一些技巧。通常,大多数人在使用通义灵码时会直接上手,这是 AI agent 的一个优势,即 zero shot 使用,无需任何上下文即可直接使用通义灵码的能力。
|
5月前
|
安全 Java Nacos
0代码改动实现Spring应用数据库帐密自动轮转
Nacos作为国内被广泛使用的配置中心,已经成为应用侧的基础设施产品,近年来安全问题被更多关注,这是中国国内软件行业逐渐迈向成熟的标志,也是必经之路,Nacos提供配置加密存储-运行时轮转的核心安全能力,将在应用安全领域承担更多职责。
|
9月前
|
数据库 Python
【YashanDB知识库】python驱动查询gbk字符集崖山数据库CLOB字段,数据被驱动截断
【YashanDB知识库】python驱动查询gbk字符集崖山数据库CLOB字段,数据被驱动截断