水晶報表 & DataReader

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

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

請問:這樣是否行得通?
...全文
219 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
  • 打赏
  • 举报
回复
暈,沒人啊?

62,074

社区成员

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

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

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

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