Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用C中的datagridview数据设计报表(.rdlc)#_C#_Datagridview_Rdlc - Fatal编程技术网

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

C# 如何使用C中的datagridview数据设计报表(.rdlc)#,c#,datagridview,rdlc,C#,Datagridview,Rdlc,在我的windows窗体应用程序中,我有一些datagridview,它使用程序所做的计算进行填充。 现在我想设计一个基于datagridviewsdata的报表 通过搜索,我发现要做到这一点,我必须将数据放入数据库表中,然后从数据库中获取数据,然后将它们放入我的C#程序中的数据集,这样我就可以访问这些数据来设计报告 但这种方法也有它自己的问题,比如我的datagridviews有不同类型的数据,比如string或int,问题是如何将它们放入表中 例如,我将datagrid转换为datatabl

在我的windows窗体应用程序中,我有一些
datagridview
,它使用程序所做的计算进行填充。 现在我想设计一个基于
datagridviews
data的报表 通过搜索,我发现要做到这一点,我必须将数据放入
数据库
表中,然后从
数据库
中获取数据,然后将它们放入我的C#程序中的
数据集
,这样我就可以访问这些数据来设计报告

但这种方法也有它自己的问题,比如我的
datagridviews
有不同类型的数据,比如string或int,问题是如何将它们放入表中

例如,我将datagrid转换为datatable,如下所示:

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;
}
这是唯一的办法吗?
对于这种情况,设计报表的最佳方法是什么

什么特定语法错误?还是仅仅是简单的语法错误?此外,在处理查询时,您应该始终添加一个参数,这是一个良好的做法。不,这不是唯一的办法。您可以直接将数据集传递给报表。@P.Pat INSERT INTO语句中的语法错误。@Reniuz我正在使用access数据库,在foreach循环中,我应该如何使用参数?这是如何传递数据和动态创建报表的起点。
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();
   }
}