将数据库sql server image字段取出来保存为图片

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using XZL.ERP.Base.Common;
using XZL.ERP.Base.Connection;
using XZL.ERP.POS.Model.ViewModel.Mobile;
using XZL.ERP.POS.Model.Weixin;
using System.IO;
using System.Drawing;
using System.Xml.Linq;

namespace XZL.ERP.POS.DAL.Mobile
{
    public  class Scan_Dal : Base_DAL
    {

        /// <summary>
        /// 查询商品数据
        /// </summary>
        /// <returns></returns>
        public Result GetScandata(string code)
        {
            string str;
            try
            {
                StringBuilder sSQL = new StringBuilder();
                DataTable Com = new DataTable();
                 
                sSQL.Append("select   ImageID, ItemName,price,c1 ,IMG1.ItemCode ,itemImage,img1.ImageType from  OITM,IMG1" +
                    " where  IMG1.ItemCode = OITM.ItemCode  and OITM.itemcode  = '" + code + "'");
                Com = PosDbContex.QueryToDataTable(sSQL.ToString(), null);
                //byte[] bytes = Convert.FromBase64String(Com.Rows[0]["itemImage"].ToString());

                //byte[] bytes = Encoding.Default.GetBytes( Com.Rows[0]["itemImage"].ToString());
                //MemoryStream memStream = new MemoryStream(bytes);
                //Image mImage = Image.FromStream(memStream);
                //memStream.Close();

                //创建命令对象,con参数是一个连接对象
                //SqlCommand com = new SqlCommand(sql, con);
                //con.Open();
                //SqlDataReader dr = com.ExecuteReader();
                //if (dr.Read())
                //{
                //    //声明数组,用于保存数据库的二进制数据
                //    byte[] mybyte = null;
                //    //读取数据保存到数组中
                //    mybyte = (byte[])dr["photo"];
                //    Image image;
                //    //读取数组数据成为文件流
                //    MemoryStream mymemorystream = new MemoryStream(mybyte);
                //    //转换成为图片格式。
                //    image = Image.FromStream(mymemorystream, true);
                //    this.pictureBox1.Image = image;
                //    mymemorystream.Close();  //关闭流
                //}

                MemoryStream ms = new MemoryStream();
                byte[] img = (byte[])Com.Rows[0]["itemImage"];
                MemoryStream memStream = new MemoryStream(img);
                Image mImage = Image.FromStream(memStream);
                Bitmap bp = new Bitmap(mImage);
                bp.Save("D:/img/"+DateTime.Now.ToString("yyyyMMddHHss") + ".jpg");//注意保存路径

                Result.Code= ResultCode.Success.GetHashCode();

                if (Com != null && Com.Rows.Count >0)
                {
                    Result.Code = ResultCode.Success.GetHashCode();
                    Result.Message = "成功";
                    Result.Data = Com;
                    return Result;
                }
                else
                {

                    Result.Message = "失败";
                }
                return Result;

                ///写到这里
            }
            catch (Exception ex)
            {
            //    Result.Code = ResultCode.Custom.GetHashCode();
            //    GetAchieResult_M.Message = ex.Message;
            //    GetAchieResult_M.Data = null;
                return Result;
            }
            
        }


        /// <summary>
        /// 查询数据
        /// </summary>
        /// <returns></returns>
        public string GetScandata1( string code)
        {
            string str;
            try
            {
                StringBuilder sSQL = new StringBuilder();
                Result resp = new Result();
                sSQL.Append("select top 1 * from OITM where ItemCode = '" + code + "'");
                str = PosDbContex.FirstOrDefault<string>(sSQL.ToString(), null);
                return str;
            }
            catch (Exception ex)
            {
            //    Result.Code = ResultCode.Custom.GetHashCode();
            //    GetAchieResult_M.Message = ex.Message;
            //    GetAchieResult_M.Data = null;
                return "没有数据";
            }
            
        } 
        public Boolean ChangCom(string Company, string Password)
        {
            try
            {
                string sSQL="";
                sSQL = "update  COMC set isactive =1 where  companyname = @Company and DBname = @Password  ;";
                sSQL += "update  COMC set isactive =0 where  companyname != @Company ;";
                bool ret = PosDbContex.Execute(sSQL, new  { Company = Company, Password = Password });
                return ret;
            }
            catch (Exception ex)
            {
            //    Result.Code = ResultCode.Custom.GetHashCode();
            //    GetAchieResult_M.Message = ex.Message;
            //    GetAchieResult_M.Data = null;
                return false;
            }
            
        }
    }
}
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将文件上传到SQL Server数据库,需要先将文件换成二进制数据,然后将其插入到数据库中的varbinary(max)类型字段中。以下是使用Layui上传图片并将其存入SQL Server数据库的示例: 1. 在HTML中添加文件上传表单: ```html <form class="layui-form" action="" enctype="multipart/form-data"> <div class="layui-form-item"> <div class="layui-upload"> <button type="button" class="layui-btn" id="uploadBtn">上传图片</button> <div class="layui-upload-list"> <img class="layui-upload-img" id="previewImg"> <p id="previewText"></p> </div> </div> </div> </form> ``` 2. 引入Layui和jQuery库: ```html <link rel="stylesheet" href="https://cdn.staticfile.org/layui/2.5.6/css/layui.min.css"> <script src="https://cdn.staticfile.org/jquery/3.5.1/jquery.min.js"></script> <script src="https://cdn.staticfile.org/layui/2.5.6/layui.min.js"></script> ``` 3. 初始化Layui上传组件: ```javascript layui.use('upload', function(){ var upload = layui.upload; //执行上传 var uploadInst = upload.render({ elem: '#uploadBtn', //绑定元素 url: '/upload/', //上传接口 accept: 'images', //允许上传的文件类型 size: 1024, //限制文件大小,单位KB done: function(res){ //上传成功回调 $('#previewImg').attr('src', res.data.src); //显示预览图 $('#previewText').html(res.data.title); //显示文件名 //将文件二进制数据存入数据库 $.ajax({ type: 'POST', url: '/saveToDB/', data: { imageData: res.data.imageData //文件的二进制数据 }, success: function(data){ console.log(data); }, error: function(){ console.log('上传失败'); } }); }, error: function(){ //上传失败回调 console.log('上传失败'); } }); }); ``` 4. 在服务器端处理上传的文件,并将其存入SQL Server数据库: ```php <?php //获取上传的文件二进制数据 $imageData = file_get_contents($_FILES['file']['tmp_name']); //连接SQL Server数据库 $serverName = "localhost"; $connectionOptions = array( "Database" => "dbname", "Uid" => "username", "PWD" => "password" ); $conn = sqlsrv_connect($serverName, $connectionOptions); //将文件二进制数据插入到数据库中 $sql = "INSERT INTO images (image_data) VALUES (?)"; $params = array($imageData); $stmt = sqlsrv_prepare($conn, $sql, $params); if(sqlsrv_execute($stmt) === false){ die(print_r(sqlsrv_errors(), true)); } sqlsrv_free_stmt($stmt); sqlsrv_close($conn); ?> ``` 注意:以上代码仅供参考,具体实现需要根据自己的实际情况进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值