您好所有,我在C#Windows应用程序的工作。我的问题是同时运行的应用程序水晶报表不开放时,我数据库大小increses的......否则,它的工作原理罚款......这个问题不会发生在Visual Studio 2005 ..但我使用VS 2010 ..确切的问题是似乎设置不正确的水晶报表数据源的数据集的数据,所以请人帮我......
这是我的代码
private void LoadUserReport()
{
try
{
ParameterFields _objParamFields = new ParameterFields();
ParameterField _objParamField;
ParameterDiscreteValue _objParamDiscreteValue;
DataTable _dt = new DataTable();
DataSet _ds1 = new DataSet();
int iColumnNo = 0;
for (int i = 0; i < _dsReport.Tables[0].Columns.Count; i++)
{
string sColhead = _dsReport.Tables[0].Columns[i].ColumnName.Trim();
_dt.Columns.Add(sColhead);
userDS.Tables[0].Columns[i].AllowDBNull = true;
}
for (int i = 0; i < _dsReport.Tables[0].Rows.Count; i++)
{
_dt.Rows.Add();
userDS.Tables[0].Rows.Add();
for (int k1 = 0; k1 < _dsReport.Tables[0].Columns.Count; k1++)
{
if (_dsReport.Tables[0].Rows[i][k1].ToString() != null)
{
_dt.Rows[i][k1] = _dsReport.Tables[0].Rows[i][k1].ToString();
userDS.userreport.Columns[k1].MaxLength = 1000;
string sStrValue = _dt.Rows[i][k1].ToString();
if (sStrValue != null)
{
userDS.userreport[i][k1] = sStrValue;
}
}
}
}
_ds1.Tables.Add(_dt);
for (int i = 0; i < _dsReport.Tables[0].Columns.Count; i++)
{
string colCaption = _dsReport.Tables[0].Columns[i].Caption.Trim();
_ds1.Tables[0].Columns[i].Caption = colCaption;
}
for (int k = 0; k < _ds1.Tables[0].Rows.Count; k++)
{
for (int j = iColumnNo; j < _ds1.Tables[0].Columns.Count; j++)
{
iColumnNo++;
_objParamField = new ParameterField();
_objParamField.Name = "col" + iColumnNo;
_objParamDiscreteValue = new ParameterDiscreteValue();
if (_ds1.Tables[0].Rows[k][j].ToString() != null)
{
_objParamDiscreteValue.Value = _ds1.Tables[0].Columns[j].Caption.Trim();
}
_objParamField.CurrentValues.Add(_objParamDiscreteValue);
_objParamFields.Add(_objParamField);
}
}
for (int j = iColumnNo; j < 10; j++)
{
iColumnNo++;
_objParamField = new ParameterField();
_objParamField.Name = "col" + iColumnNo;
_objParamDiscreteValue = new ParameterDiscreteValue();
_objParamDiscreteValue.Value = "";
_objParamField.CurrentValues.Add(_objParamDiscreteValue);
_objParamFields.Add(_objParamField);
}
crystalReportViewer1.ParameterFieldInfo = _objParamFields;
_objUserReport.SetDataSource(userDS); //here problem occur it seems
if (_sRptTitle.Trim().Length > 0)
{
_objUserReport.SetParameterValue("Title", _sRptTitle.Trim() + "\t Report");
}
else
{
_objUserReport.SetParameterValue("Title", "User Report");
}
if (_sLocationName != null)
_objUserReport.SetParameterValue("LocationName", _sLocationName.Trim());
_objUserReport.SetParameterValue("Head1", _sEventHead1.Trim());
_objUserReport.SetParameterValue("Head2", _sEventHead3.Trim());
_objUserReport.SetParameterValue("Head3", _sEventHead4.Trim());
Text = _sNewcon1;// "User Report";
_objUserReport.SetParameterValue("Title", _sNewcon1);
crystalReportViewer1.ReportSource = _objUserReport;
}
catch (EngineException engex)
{
MessageBox.Show(engex.Message, _sMsgboxTitle, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}