显示来自 DataSet 的数据
Display data from DataSet
我想显示从 DataSet
到我的 ReportViewer
的数据。目前我有 4 个报告,其中包含 NameSurname
、NetworkLogin
、Status
、OrgUnitID
等基本数据,我创建了一个过滤器,它将使用 Status
和OrgUnitID
.
到目前为止这里是代码
public void BindToData()
{
try
{
DataSet ds = new DataSet();
string connString = @"Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=DesignSaoOsig1;Integrated Security=True";
SqlConnection conn = new SqlConnection(connString);
string strproc = "TestReport";
using (SqlDataAdapter sda = new SqlDataAdapter(strproc, connString))
{
SqlCommand cmd = new SqlCommand();
sda.SelectCommand.CommandType = CommandType.StoredProcedure;
sda.SelectCommand.Parameters.Add("@Status", SqlDbType.Bit).Value = ddlStatus.SelectedValue == "1" ? true : false;
sda.SelectCommand.Parameters.Add("@OrgJed", SqlDbType.Int).Value = ddlOrgUnit.SelectedValue;
sda.Fill(ds);
XtraReport report = new XtraReport();
string nazivIzvjestaja = ds.Tables[0].Rows[0].ItemArray[0].ToString();
if (string.IsNullOrEmpty(nazivIzvjestaja))
{
conn.Close();
}
report.DataSource = ds;
report.DataMember = ds.Tables[0].ToString();
string[] arrvalues = new string[ds.Tables[0].Rows.Count];
for (int loopcounter = 0; loopcounter < ds.Tables[0].Rows.Count; loopcounter++)
{
//assign dataset values to array
arrvalues[loopcounter] = ds.Tables[0].Rows[loopcounter]["PrezimeIme"].ToString();
arrvalues[loopcounter] = ds.Tables[0].Rows[loopcounter]["NetworkLogin"].ToString();
arrvalues[loopcounter] = ds.Tables[0].Rows[loopcounter]["Status"].ToString();
arrvalues[loopcounter] = ds.Tables[0].Rows[loopcounter]["OrgUnitID"].ToString();
arrvalues[loopcounter] = ds.Tables[0].Rows[loopcounter]["DT_Creat"].ToString();
arrvalues[loopcounter] = ds.Tables[0].Rows[loopcounter]["DT_Modif"].ToString();
}
}
}
catch (Exception)
{
throw;
}
}
到目前为止我使用 DevExpress
。到目前为止,我使用 for loop
捕获了所有数据,但我遇到了问题,我不知道如何将这些数据显示到 Report
。
我们将更欢迎任何帮助。
正如您已经说过的,您已将数据集与报表绑定,您可以通过在循环完成后插入以下行来预览报表以检查结果:
report.ShowPreview();
我注意到您正在使用 DevExpress 的非类型化数据集,它需要序列化,因为 Dev Express 官方 post 对此有详细解释:
Check for the Official Website blog
我想显示从 DataSet
到我的 ReportViewer
的数据。目前我有 4 个报告,其中包含 NameSurname
、NetworkLogin
、Status
、OrgUnitID
等基本数据,我创建了一个过滤器,它将使用 Status
和OrgUnitID
.
到目前为止这里是代码
public void BindToData()
{
try
{
DataSet ds = new DataSet();
string connString = @"Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=DesignSaoOsig1;Integrated Security=True";
SqlConnection conn = new SqlConnection(connString);
string strproc = "TestReport";
using (SqlDataAdapter sda = new SqlDataAdapter(strproc, connString))
{
SqlCommand cmd = new SqlCommand();
sda.SelectCommand.CommandType = CommandType.StoredProcedure;
sda.SelectCommand.Parameters.Add("@Status", SqlDbType.Bit).Value = ddlStatus.SelectedValue == "1" ? true : false;
sda.SelectCommand.Parameters.Add("@OrgJed", SqlDbType.Int).Value = ddlOrgUnit.SelectedValue;
sda.Fill(ds);
XtraReport report = new XtraReport();
string nazivIzvjestaja = ds.Tables[0].Rows[0].ItemArray[0].ToString();
if (string.IsNullOrEmpty(nazivIzvjestaja))
{
conn.Close();
}
report.DataSource = ds;
report.DataMember = ds.Tables[0].ToString();
string[] arrvalues = new string[ds.Tables[0].Rows.Count];
for (int loopcounter = 0; loopcounter < ds.Tables[0].Rows.Count; loopcounter++)
{
//assign dataset values to array
arrvalues[loopcounter] = ds.Tables[0].Rows[loopcounter]["PrezimeIme"].ToString();
arrvalues[loopcounter] = ds.Tables[0].Rows[loopcounter]["NetworkLogin"].ToString();
arrvalues[loopcounter] = ds.Tables[0].Rows[loopcounter]["Status"].ToString();
arrvalues[loopcounter] = ds.Tables[0].Rows[loopcounter]["OrgUnitID"].ToString();
arrvalues[loopcounter] = ds.Tables[0].Rows[loopcounter]["DT_Creat"].ToString();
arrvalues[loopcounter] = ds.Tables[0].Rows[loopcounter]["DT_Modif"].ToString();
}
}
}
catch (Exception)
{
throw;
}
}
到目前为止我使用 DevExpress
。到目前为止,我使用 for loop
捕获了所有数据,但我遇到了问题,我不知道如何将这些数据显示到 Report
。
我们将更欢迎任何帮助。
正如您已经说过的,您已将数据集与报表绑定,您可以通过在循环完成后插入以下行来预览报表以检查结果:
report.ShowPreview();
我注意到您正在使用 DevExpress 的非类型化数据集,它需要序列化,因为 Dev Express 官方 post 对此有详细解释: Check for the Official Website blog