从数据库取图片并展示到页面

图片以varchar(max)数据格式存储于数据库,每张照片对应一个检测流水号,需要将其取出展示到页面。

一、BLL

publict byte[] GetPhotoData(string jclsh)
{
    byte[] photoData=new byte[4000];
    try
    {
        string sqlStr="select fimage from imagetable where jclsh=\‘"+jclsh+"\‘";
        DataTable dt=new YTH_CHECKPHOTO_DAL().GetDataTable(sqlStr);
        photoData=Convert.FromBase64String(dt.Rows[0]["fimage"].ToString().Replace(" ", "+"));//从Base64String格式转换为byte[]时,需要注意
    }
    catch(Exception ex)
    {

    }
    return photoData;
}

二、DAL
1、取得表信息

public override DataTable GetDataTable(string sqlStr)
{
DataTable dt = null;
try
{
//查询DataTable
dt = DbHelper.ExecuteGetDataTable(CommandType.Text, sqlStr);
}
catch (Exception ex)
{
Logger.Error(string.Format(@"执行查询异常,SQL:{0} 异常信息为:{1}", sqlStr, ex.Message));
}
finally
{
CloseConnet();
}
return dt;
}

2、DbHelper执行查询

public static DataTable ExecuteGetDataTable(CommandType commandType, string commandText, params SqlParameter[] commandParameters)
{
    //创建一个SqlCommand对象
    SqlCommand command = new SqlCommand();
    //创建一个DataTable对象
    DataTable table = new DataTable();
    //创建一个SqlConnection对象
    try
    {
        using (SqlConnection sqlConnection = new SqlConnection(connectionString))
        {
            //调用PrepareCommand方法,对SqlCommand对象设置参数
            PrepareCommand(command, sqlConnection, null, commandType, commandText, commandParameters);
            SqlDataAdapter adapter = new SqlDataAdapter(command);
            adapter.Fill(table);
            sqlConnection.Close();
        }
    }
    catch (Exception ex)
    {
        throw ex;
        Logger.Error(ex.Message);

    }
    return table;
}

3、DbHelper准备命令

private static void PrepareCommand(SqlCommand sqlCommand, SqlConnection sqlConnection, SqlTransaction sqlTransaction, CommandType commandType, string commandText, SqlParameter[] commandParameters)
{
    try
    {
        if (sqlConnection.State != ConnectionState.Open)
        {
            sqlConnection.Open();
        }
        sqlCommand.Connection = sqlConnection;
        sqlCommand.CommandText = commandText;
        if (sqlTransaction != null)
        {
            sqlCommand.Transaction = sqlTransaction;

        }
        sqlCommand.CommandType = commandType;
        if (commandParameters != null)
        {
            sqlCommand.Parameters.AddRange(commandParameters);
        }
    }
    catch (Exception ex)
    {
        Logger.Error(ex.Message);
    }
}
时间: 2024-10-12 10:46:43

从数据库取图片并展示到页面的相关文章

EF更新,数据库值变化,前台页面并不变化,刷新也不变化,重新运行程序则变化----开发中遇到的问题(已解决)

首先说一下我遇到这个情况的代码情景,首先上错误代码 UserInfo userInfo = Session["UserInfo"] as UserInfo; var attentionTopicInfos = userInfo.TopicInfos.Where(t => t.TopicId > 0); 这段代码所呈现的问题正如题目,数据库值变化,前台页面并不变化,刷新也不变化,重新运行程序则变化. 断点调试----看到无论如何更新,查出来的attentionTopicInf

UIWebView --- IOS用于展示Web页面的控件

UIWebView是IOS中用于展示Web页面的基本控件,提供了非常简便高效的使用方式. 首先,要现在storyboard中建立一个UIWebView的IBOutlet,且与ViewController关联起来. 然后就是代码执行过程了: //webView与storyboard连接起来 var webView: UIWebView! //先设置好webView的样式等 webView!.frame = self.view.frame webView!.backgroundColor = UIC

用github展示前端页面

今天尝试了一下使用github展示前端页面,还是比较简单的,平时做一些小的demo时,可以用这个方法展示自己的页面,在此记录下方法. 首先打开自己的github项目仓库,比如   https://github.com/zqqya/ToDoList 创建一个新的分支,名字为gh-pages(只能为这个名字),这个分支会自动把master下的文件拷贝过来 然后就可以直接访问以下地址: http://(user_name|org_name).github.io/repo_name 就可以展示你的项目的

03: 将帖子展示到页面、点赞

1.1 将帖子展示到页面效果图 功能1:从后台获取指定页数的帖子,根据是否置顶推送到对应的列表 功能2:调用create_post_list,将已分类的帖子展示到页面 功能3:调用create_paginator生成分页标签 功能4:点赞 功能5:生成分页标签 1.2 各功能点code 1.功能1:初始化函数调用view_posts函数,展示帖子 <div class="left_container fl"> <div class="post_list&qu

node创建服务器之展示html页面

在上篇随笔中,我只说了如何建立一个http服务,并没有说如何展示html页面,毕竟最后我们在web服务器上是要返回给用户不同的html页面的,那么我们如何根据用户的请求来为用户呈现出不同的页面列,这里我们就需要用到fs模块来实现了,fs模块也是node集成的一个模块,这个模块看字面意思就知道,是用来操作文件的,有了fs模块,js就可以在node环境下操作服务器的文件了,这个模块十分有用,哈哈哈,看一下,如何使用这个模块为用户呈现一个html页面的内容 var http = require('ht

数据库数据为0.9,展示到页面显示为.9解决办法

1.若java bean中定义的属性为String类型,此时若表中字段存在小于零的正数,java后台得到的数据丢失小数点前面的0: 2.若java中定义的bean属性为Double类型,没有1中的现象(已验证) 3.解决1中的现象: A.改变查询语句:select  to_char(0.9,'fm99990.0')  from dual fm99990.0表示整数部分最多5位,小数部分最多一位,fm作用是去掉数值前边多余的空格,不加fm数值前边会有空格, 弊端:如果输入的数为整数,整数后边会带有

AJAX验证数据库内容并显示在页面

功能实现: 在jsp页面中填写文本框内容,光标离开文本框,在本页面的相应地方获取数据库中改值所对应的其他数据. servlet: 1 request.setCharacterEncoding("utf-8"); 2 PrintWriter out = response.getWriter(); 3 // 调用servlet层去数据库查找是否有相同用户名 并返回到页面中的其他记录 4 String client_id = request.getParameter("client

Laravel5.1 搭建简单的社区(四)--展示帖子页面

首先我们注册resource路由: Route::get('/', '[email protected]'); Route::resource('discussions', 'PostsController'); 在PostsController的show方法返回一个视图: public function show($id) { // 取到单条帖子 $discussion = Discussion::findOrFail($id); // 返回视图 return view('forum.show

django 将表数据通过API展示到页面上(转)

需求: 我在learn这个app下创建了两张表,其中一个表为user,我希望通过API,在页面是展示这些数据,当用户访问指定的url时,将表中所有对象展示到页面上. 先看learn/models.py文件代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 #coding:utf8 from django.db import models class Group(models.Model):     Name = models.CharField(max_le