请问怎么用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#