如何使用C#中的datagridview数据设计报表(.rdlc)

时间:2017-03-07 08:55:26

标签: c# datagridview rdlc

在我的Windows窗体应用程序中,我有一些datagridview使用程序执行的计算填充。 现在我想根据datagridviews数据设计报告 通过搜索,我发现要这样做,我必须将我的数据放入database表,然后从database获取它们以将它们放入我的C#程序中的dataset中,这样我可以访问该数据来设计报告。

但这种方式有自己的问题,例如我的datagridviews有不同类型的数据,如字符串或int,问题是如何将它们放入表中

例如,我将数据网格转换为数据表,如下所示:

private DataTable GetDTFromDGV(DataGridView dgv)
{
    var dt = new DataTable();

    foreach (DataGridViewColumn column in dgv.Columns)
    {
        if (column.Visible)
        {
            dt.Columns.Add();
            if (column.Name != "")
            {
                dt.Columns[column.Index].ColumnName = column.Name;
            }
        }
    }
    object[] CellValue = new object[dgv.Columns.Count];

    foreach (DataGridViewRow row in dgv.Rows)
    {
        for (int i = 0; i < row.Cells.Count; i++)
        {
            CellValue[i] = row.Cells[i].Value;
        }
        dt.Rows.Add(CellValue);
    }

    return dt;
}

这是我的数据表:

enter image description here

现在我想将它插入这样的数据库中,我得到语法错误:

  

INSERT INTO语句中的语法错误。

using (OleDbCommand Cmd = new OleDbCommand())
{
   Cmd.Connection = Connection;

   Cmd.CommandText = "Delete * From rAnimalPerformance";
   Cmd.ExecuteNonQuery();

   foreach (DataRow Dr in cAnimalPerformancedt.Rows)
   {
       Cmd.CommandText = @"Insert Into rAnimalPerformance (Val, Desc) 
                                       Values ("
                                               + "'" + Dr["Val"] + "', '"     
                                               + Dr["Desc"] + "')";

       Cmd.ExecuteNonQuery();
   }
}
这是唯一的方法吗? 对于这样的情况,什么是设计报告的最佳方式

0 个答案:

没有答案