回答
您可以參考this 或按照步驟
- >當數據庫文件路徑店,需要顯示在水晶報表
的細節部分的圖像如果您有存儲在ImagePath的你數據庫,Visual Studio 2003/2005中的Crystal Report .NET無法動態顯示圖像文件,除非您在Crystal Report XI中使用動態圖像位置功能。
但不要擔心,它可以顯示一些解決此問題的方法。
您的數據庫中必須有圖像路徑。
創建新的數據集/ XML模式(xsd)以用作創建報告中的資源數據。添加附加字段,是不是在桌子這是base64Binary類型的:
設計報表時的阻力,並在您希望它出現的區域去掉「image_stream」字段。
在你的代碼添加下面的方法:
私人無效AddImageColumn(數據表objDataTable,串strFieldName) { 嘗試 { 的DataColumn objDataColumn =新的DataColumn(strFieldName,Type.GetType(「System.Byte []「)); objDataTable.Columns.Add(objDataColumn); } catch(Exception ex) Response.Write(「」+ ex.Message +「」); } }
而這一次加載圖像:
私人無效的LoadImage(DataRow的objDataRow,串strImageField,字符串文件路徑) { 嘗試 { 的FileStream FS =新的FileStream(文件路徑,系統.IO.FileMode.Open,System.IO.FileAccess.Read); byte [] Image = new byte [fs.Length]; fs.Read(Image,0,Convert.ToInt32(fs.Length)); fs.Close(); objDataRow [strImageField] =圖像; } catch(Exception ex) Response.Write(「」+ ex.Message +「」); }}
之前分配數據集到您的報告「的setDataSource」,添加以下代碼:
AddImageColumn(ds.Tables [0],「image_stream」); for(int index = 0; index < ds.Tables [0] .Rows。計數;索引++) if(ds.Tables [0] .Rows [index] [「image_path」] .ToString()!=「」) if(File.Exists(this.Server.MapPath(ds.Tables [0] .Rows [index] [「image_path」]。ToString()))) LoadImage(ds.Tables [0] .Rows [index],「image_stream」,ds.Tables [0] .Rows [指數] [ 「IMAGE_PATH」]的ToString()); LoadImage(ds.Tables [0] .Rows [index],「image_stream」,「C:\ NoImage.jpg」); LoadImage(ds.Tables [0] .Rows [index],「image_stream」,「C:\ NoImage.jpg」);}} } }
最後,在晶體報告查看器中顯示報告
crDoc.SetDatabaseLogon(用戶ID,密碼,服務器,數據庫); crDoc.SetDataSource(ds.Tables [0]); CrystalReportViewer1.ReportSource = crDoc;
未測試。
謝謝非常。我做不到。請告訴我我做了什麼? – 2012-04-11 07:32:09
它實際上是容易的,按照這個鐙:除非你已經在使用OLE
- ,創建表的數據庫字段的新連接crystareport1
- 選擇OLE DB(ADO)
- 添加表圖像存儲在哪裏。
- 提供系統所需的數據庫信息
- 現在您已將數據表添加到數據庫字段中。
- 只需將圖像拖放到section3區域即可。
- 鏈接此爲您鏈接簡單顯示其他記錄。
我已經在我的項目進行了測試
- 1. 使用Visual Studio 2008與C/C++
- 2. 使用Visual Studio 2008安裝ExcelPackage與C#
- 3. 如何在Visual Studio 2008中使用ASP.NET
- 4. sqlserver 2008與visual studio 2010
- 5. 如何將svn與Visual Studio 2008集成?
- 6. 將Visual Studio 2008 Professional與MSDN Professional結合使用到Visual Studio 2010
- 7. 如何在Visual Studio 2008中使用Visual Studio 2010 C++工具?
- 8. Visual Studio 2008與XAML掛起
- 9. MKS與Visual Studio 2008集成?
- 10. SQL Server Compact與Visual Studio 2008
- 11. 的PREfast與Visual Studio 2008
- 12. 使用C++和Visual Studio 2008
- 13. 使用Visual Studio 2010和2008
- 14. 如何加快Windows Vista 64的使用與Visual Studio 2008?
- 15. CMake的 - 與Visual Studio 2008
- 16. 如何卸載Visual Studio 2008?
- 17. 在Visual Studio 2008
- 18. Editor visual studio 2008
- 19. 如何使Visual Studio 2008從http:// localhost/
- 20. 如何使Visual Studio 2010發佈爲2008
- 21. 在Visual Studio 2008
- 22. 如果我安裝Visual Studio 2008,Visual Studio 6.0可以使用嗎?
- 23. 從Visual Studio 2008
- 24. Visual studio 2008表?
- 25. Visual Studio 2008 bug?
- 26. C#,Visual Studio 2008
- 27. Visual Studio 2008
- 28. 爲Visual Studio 2008
- 29. 如何將Visual Studio 2010與Visual C++ 2008編譯器結合使用?
- 30. C#Visual Studio 2008引用system32.dll ...如何?
[你嘗試過什麼?](http://mattgemmell.com/2008/12/08/what-have-you-tried/) – user850498 2012-04-10 08:17:49