当前位置:编程学习 > C#/ASP.NET >>

请问怎么用DB2 控制中心为一个表写入blob类型的数据?

单位用db2存储了一些图像文件,现在科长需要我做个网站来对我们收集的数据进行查询。尤其是要能在网站上看到db2中的图像。
现在我只能做到用C#.net和db2连接,并在textbox中显示非blob类型的字段。

现在我做了个小实验,就是查询db2数据库中的一个表中的数据。
数据库名字叫 MYFIRST
表名叫 USERS
表中有4个字段,类型和名字分别是 Integer userid、Character username、Integer userage、Blob userphoto
我用的是VS2008,要实现在网页上显示users表中的全部数据。我的前台很简单,就是一个按钮(id是b_query)和一个多行显示的textbox(id是t_datashow),目前textbox中可以显示Integer userid、Character username、Integer userage这三个字段,用什么控件能显示Blob userphoto呢?

我的疑问
1。怎么在gridview或者其他数据控件中绑定DB2的数据源?我看到网上很多用的是ODBC,不过我是引用的IBM.Data.DB2.dll实现的,所以在为gridview配置数据源时根本找不到IBM DB2的数据源。就只能用个字符串把数据拷到textbox中去。

2。如果要显示blob类型的数据,应该怎么做?gridview貌似也不能实现。

求高人指点。

附:后台代码
using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using IBM.Data.DB2;


public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void b_query_Click(object sender, EventArgs e)
    {
        DB2Connection db2conn = new DB2Connection("Database=MYFIRST");
        String sqlstr="select * from users";
        DB2Command db2cmd = new DB2Command(sqlstr,db2conn);
        db2conn.Open();
        DB2DataReader db2datareader = db2cmd.ExecuteReader();
        if (db2datareader.HasRows)
        {
            String listtemp="";
            while (db2datareader.Read())
            {
                listtemp = listtemp + "\n" + db2datareader.GetString(0) + "  " + db2datareader.GetString(1) + db2datareader.GetString(2);
            }
            t_datashow.Text = listtemp;
        }
        db2datareader.Close();
        db2conn.Close();
        if (db2datareader != null)
        {
            ((IDisposable)db2datareader).Dispose();
        }
       
        
    }
} --------------------编程问答-------------------- 每日十分 --------------------编程问答-------------------- 谢绝日常 --------------------编程问答-------------------- 没人帮帮忙么?我写了这么多的。

而且代码也能运行。

--------------------编程问答-------------------- 解决了已经
在前台添加一个按钮ID为b_imageimport
按钮后台代码如下。(只对一条记录操作,本例只是一个实验代码,可设计循环逐条写入)

protected void b_imageimport_Click(object sender, EventArgs e)
    {
        DB2Connection db2conn = new DB2Connection("Database=MYFIRST");
        String sqlstr = "update users set userphoto=@userphoto where userid=103";
        DB2Command db2cmd = new DB2Command(sqlstr, db2conn);
        //!!!!!!!!!!文件操作开始!!!!!!!!!!!!
        FileStream fstream = new FileStream("K:\\pic\\200837152945362.jpg", FileMode.Open, FileAccess.Read);
        byte[] blob=new byte[fstream.Length];
        fstream.Read(blob, 0, blob.Length);
        fstream.Close();
        DB2Parameter db2para = new DB2Parameter("@userphoto",DB2Type.VarBinary,blob.Length,ParameterDirection.Input,false,0,0,null,DataRowVersion.Current,blob);
        db2cmd.Parameters.Add(db2para);
        //!!!!!!!!!!!!!!!!!!!!!文件操作完毕!!!!!!!!!
        db2conn.Open();
       db2cmd.ExecuteNonQuery();
       db2conn.Close();

    }

测试成功,请斑竹给分吧。。。。。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,