水晶報表 & DataReader

edwardfay 2006-09-19 02:40:52
我原來制作水晶報表時,是使用的DataSet,將一個xml文件先load到DataSet中,然后設置報表的數據源為這個DataSet,但是如果這個xml文件過大的話(近300M), memory占用太大了

現在改成:數據放在數據庫中,表結構和xml文件中的表結構是一樣的,使用DataReader來讀取數據,并設置報表的數據源為DataReader,

請問:這樣是否行得通?
...全文
244 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
edwardfay 2006-09-20
  • 打赏
  • 举报
回复
哪位用c#做过window程序?
我在代码中,使用完数据库后,写了connection.close()
但在oracle中查看,连接并没有关闭,当我关闭窗口以后,连接才关闭,为什么?
kaixin110 2006-09-19
  • 打赏
  • 举报
回复
Converts a SqlDataReader to a DataSet
只希望對你有幫助


/// <summary>
/// Converts a SqlDataReader to a DataSet
/// http://authors.aspalliance.com/stevesmith/articles/convertReadertoSet.asp
/// <param name='reader'>
/// SqlDataReader to convert.</param>
/// <returns>
/// DataSet filled with the contents of the reader.</returns>
/// </summary>
public static DataSet convertDataReaderToDataSet(SqlDataReader reader)
{
DataSet dataSet = new DataSet();
do
{
// Create new data table

DataTable schemaTable = reader.GetSchemaTable();
DataTable dataTable = new DataTable();

if ( schemaTable != null )
{
// A query returning records was executed

for ( int i = 0; i < schemaTable.Rows.Count; i++ )
{
DataRow dataRow = schemaTable.Rows[ i ];
// Create a column name that is unique in the data table
string columnName = ( string )dataRow[ "ColumnName" ]; //+ "<C" + i + "/>";
// Add the column definition to the data table
DataColumn column = new DataColumn( columnName, ( Type )dataRow[ "DataType" ] );
dataTable.Columns.Add( column );
}

dataSet.Tables.Add( dataTable );

// Fill the data table we just created

while ( reader.Read() )
{
DataRow dataRow = dataTable.NewRow();

for ( int i = 0; i < reader.FieldCount; i++ )
dataRow[ i ] = reader.GetValue( i );

dataTable.Rows.Add( dataRow );
}
}
else
{
// No records were returned

DataColumn column = new DataColumn("RowsAffected");
dataTable.Columns.Add(column);
dataSet.Tables.Add( dataTable );
DataRow dataRow = dataTable.NewRow();
dataRow[0] = reader.RecordsAffected;
dataTable.Rows.Add( dataRow );
}
}
while ( reader.NextResult() );

//------------------------------
reader.Close();//自己加的
//------------------------------

return dataSet;
}
myminimouse 2006-09-19
  • 打赏
  • 举报
回复
数据量大了水晶报表不好用
myminimouse 2006-09-19
  • 打赏
  • 举报
回复
300m,好夸张啊
jc15271149 2006-09-19
  • 打赏
  • 举报
回复
为每个xml文件创建XMLSchema1.xsd,dataset先加载xsd文件,然后在加载xml,可提高速度
ds.ReadXmlSchema();
ds.ReadXml();
edwardfay 2006-09-19
  • 打赏
  • 举报
回复
暈,沒人啊?
第七章
案例1通过委托实现异步调用
案例2使用定时器执行方法
案例3控制线程状态
案例4多线程同步的实现
案例5结束进程
案例6多线程资源共享与访问
案例7仅运行一个应用程序实例
案例7如何保证当前仅运行一个应用程序实例
案例8开始一个新线程
第八章
案例1如何应用HTTP协议下载文件
案例2如何利用流下载文件
案例3获取当前主机名和IP
案例4自制浏览器
案例5利用TCP协议实现通讯
案例7多线程TCP服务端实现
案例6用Socket连接获取客户端地址
案例8如何实现UDP通讯协议
案例9如何使用STMP协议发送电子邮件
第九章
SQL命令或存储过程如何使用参数
案例1如何连接SQL Server数据库
案例2应用连接池实现SQL Server数据库更新
案例3SQL命令或存储过程如何使用参数
案例4使用DataReader处理查询结果
案例6如何显示修改数据库中的图片信息
案例7如何使用水晶报表
如何连接SQL Server数据库
如何使用水晶报表
如何显示修改数据库中的图片信息
使用DataReader处理查询结果
应用连接池实现SQL Server数据库更新
第十章
案例1如何实现Web页面的跳转
案例2如何实现Web页面之间请求的信息保存
案例3Web页中如何添加JavaScript客户端事件
案例4Web页中如何用JavaScript实现弹出式窗口
案例5Web页中如何实现用户上传文件
案例6实现Web页输入的有效性验证
案例7在Web页中如何动态添加控件
案例8在Web页中如何使用正则表达式控件
案例9如何创建Web Service应用程序
第十一章
案例1写XML文档
案例2创建XML文档
案例3读取XML文档内容显示在树视图中
案例4分割XML文档
案例5查询XML文档

62,269

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧