在我的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;
}
这是我的数据表:
现在我想将它插入这样的数据库中,我得到语法错误:
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();
}
}
这是唯一的方法吗?
对于这样的情况,什么是设计报告的最佳方式