在oracle数据库中,某字段保存的数据是一个路径,比如“\\192.168.1.2\Test_files\832-5001-正面照片.jpg”,而在水晶报表中,要求显示该路径对应的图片,请问我该怎么做呢,谢谢!帮帮忙啊,我不会!5555555555
解决方案 »
- 老问题wen打印大家探讨一下。
- oracel sql 语句 行转列
- 请大家就这个问题给个思路,谢谢了.
- Enterprise Library 的DAAB 是如何连接ACCESS数据库的啊。有没人用过。
- 请问WebUserControl.ascx和新建立的web 控件有什么不同,怎么的不同的用法?
- 网站中的rss是怎么做出来的
- 请问各位怎样把默认为vb.net的vs开发环境改为默认使用c#的开发环境。
- 我想在点保存按纽后提示保存成功,点“确定”后清除所有表单的数据。请问该怎么写这样的代码。谢谢 ·
- SQL语句的嵌套查询
- 存储过程带数组参数???????
- ORA-01008: 并非所有变量都已关联”
- 求SmartGrid的使用说明文档
试试这个看看
http://blog.csdn.net/haibodotnet/archive/2004/04/12/21570.aspx
在你的数据表里添加一个image类型的字段(我这取名iamge1),在你的项目添加一个.xsd的数据集,把要显示的数据字段放在.xsd里面(当然新加的image1也要),在报表.rpt里在“数据库专家”--》选择"数据库文件"-->把刚刚的加的.xsd作为数据源,把要显示字段放报表里,图片就是那个"image1"字段
在显示页面方面其它我就不多说,主要说一下填充的问题,(写的不专业,希望没有误人子弟~~)
public DataSet commonDS( string sql,string tablename)//注意这里的tablename就是.xsd里的TABLE,你打开.xsd就知道了
{
DataSet dataSet = new DataSet();
SqlCommand cmd = new SqlCommand();
SqlConnection conn = new SqlConnection(SqlHelper.ConnectionString);
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
cmd.CommandText = sql;
SqlDataAdapter adp = new SqlDataAdapter();
adp.SelectCommand = cmd;
conn.Open();
adp.Fill(dataSet, tablename);
conn.Close();
return dataSet;
}
//以下就是根据数据库取出的路径,把图片转换成image类型放在DATASET里面
using (DataSet DsImage = rd.commonDS( sqlpicture, "picture"))//commonDS( sqlpicture, "picture")这是上面的填充
{
DsImage.Tables[0].Columns.Add("image1", typeof(byte[]));
string filename = "";
for (int i = 0; i < DsImage.Tables[0].Rows.Count; i++)
{
filename = DsImage.Tables[0].Rows[i]["imagepath"].ToString();
if (filename != "")
DsImage.Tables[0].Rows[i]["image1"] = GetFileStream(filename);//##
}
DataTable picture = DsImage.Tables[0];
ds.Tables.Add(picture.Copy());
};
//这里是根据文件路径转换成二进制,对应上面的//##
private byte[] GetFileStream(string FileName)
{
FileStream fstr = new FileStream(Server.MapPath(FileName), FileMode.Open);
BinaryReader brd = new BinaryReader(fstr);
byte[] b = new byte[fstr.Length];
b = brd.ReadBytes((int)fstr.Length);
fstr.Close();
return b;
}
最后把DataSet绑定到报表显示页面
希望有助于你