好 谢谢 各位 。。我已经弄好了 。 using System.IO ; namespace test { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) {
DataSet1 ds = new DataSet1(); this.AddOneRow(ds.Tables[0], @"c:\1.jpg"); // CrystalReport1 reportDocument1 = new CrystalReport1(); reportDocument1.SetDataSource(ds); this.crystalReportViewer1.ReportSource = reportDocument1;
我 要的是把一个form的一个图片 添加到CrystalReport中。。
-----------
“在报表设计视图点右键,选insert->picture” 那我怎么用程序 改变“picture” 中的图片
不知道怎么把图片存到数据库里?
http://dotnet.aspx.cc/article/9154bc99-df64-4e2d-b096-26c99ce464be/read.aspx
不知道怎么把图片存到数据库里?
----------------------------------------------
用这种方法可以实现int upState=0;
string fileextension;
string fileoldname;
string fileType;
byte[] input;
int FileLen;
System.IO.Stream fStream;
CreateStreamDataSet(ref ds);
DataTable dt = ds.Tables["upfile"];
HttpPostedFile upfile;
HttpFileCollection files = System.Web.HttpContext.Current.Request.Files;
try
{
for (int ifile = 0; ifile <= files.Count - 1; ifile++)
{
upfile = files[ifile];
fileType=upfile.ContentType;
fileoldname = System.IO.Path.GetFileName(upfile.FileName);
if ((fileoldname != ""))
{
fileextension = System.IO.Path.GetExtension(fileoldname).ToLower();
if ((uploadType.IndexOf(fileextension) == -1))
{
upState=0;
return upState;
}
else
{
FileLen = upfile.ContentLength;
if ((FileLen > maxFileSize))
{
upState=1;
return upState;
}
else
{
input = new byte[FileLen];
fStream = upfile.InputStream;
fStream.Read(input, 0, FileLen);
DataRow dr = dt.NewRow();
dr[1] = fileoldname;
dr[2] = fileType;
dr[3] = input;
dt.Rows.Add(dr);
upState=2;
}
}
}
}
}
catch(Exception er)
{ Punoja.Common.WErrorLog.BuildErrorLog(er);
}
return upState;
string fileextension;
string fileoldname;
string fileType;
byte[] input;
int FileLen;
System.IO.Stream fStream;
CreateStreamDataSet(ref ds);
DataTable dt = ds.Tables["upfile"];
HttpPostedFile upfile;
HttpFileCollection files = System.Web.HttpContext.Current.Request.Files;
try
{
for (int ifile = 0; ifile <= files.Count - 1; ifile++)
{
upfile = files[ifile];
fileType=upfile.ContentType;
fileoldname = System.IO.Path.GetFileName(upfile.FileName);
if ((fileoldname != ""))
{
fileextension = System.IO.Path.GetExtension(fileoldname).ToLower();
if ((uploadType.IndexOf(fileextension) == -1))
{
upState=0;
return upState;
}
else
{
FileLen = upfile.ContentLength;
if ((FileLen > maxFileSize))
{
upState=1;
return upState;
}
else
{
input = new byte[FileLen];
fStream = upfile.InputStream;
fStream.Read(input, 0, FileLen);
DataRow dr = dt.NewRow();
dr[1] = fileoldname;
dr[2] = fileType;
dr[3] = input;
dt.Rows.Add(dr);
upState=2;
}
}
}
}
}
catch(Exception er)
{ Punoja.Common.WErrorLog.BuildErrorLog(er);
}
return upState;
首先我建成了一个dataset1.xsd 里面建一下Photo字段,他的数据类型找不到image类型
设成Byte型不能用,而Photo在数据库在存的是image类型
using System.IO ;
namespace test
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
DataSet1 ds = new DataSet1();
this.AddOneRow(ds.Tables[0], @"c:\1.jpg"); //
CrystalReport1 reportDocument1 = new CrystalReport1();
reportDocument1.SetDataSource(ds);
this.crystalReportViewer1.ReportSource = reportDocument1;
} public void AddOneRow(System.Data.DataTable mydt, string strImgPath)
{
FileStream fs = new FileStream(strImgPath, FileMode.Open);
BinaryReader br = new BinaryReader(fs);
System.Data.DataRow row;
row = mydt.NewRow();
row[0] = br.ReadBytes((int)br.BaseStream.Length);
mydt.Rows.Add(row);
fs=null;
br=null;
}
}
DataSet1 中的table 定义了一个DataColumn “img1” 类型是System.Byte[];
主要是AddOneRow
参考
http://www.cnblogs.com/Files/babyt
完整代码请在此处下载
http://www.cnblogs.com/Files/babyt/CR_DynLoadPics.rar