【问题标题】:Insert record from c# datatable to a database将记录从 c# 数据表插入数据库
【发布时间】:2012-06-21 14:11:20
【问题描述】:

我有这个数据表,实际上是一个数据表列表 List<DataTable> lstDataSource,现在对于列表中的每个表,我知道正好有 6 行,(周一到周六!),但可以有任意数量的列(从 6 到 14,即员工的小时数是每天工作!) 所以我知道每个数据表中行和列的限制。我的观点是如何使用这个数据表列表来更新(而是插入)读取数据库表EmpWorkSchedule 中的所有这些值。 我知道插入的总行数将是lstDataSource.Count * 6 对吗?此外,对于任何没有值的列,(一些员工工作 6 小时,一些 7 小时等......)该行中的其他列将被设置为空。 (它们在数据库中被定义为可为空的)。我希望我说清楚了。那么,我该怎么做呢?
另外,如果有什么不清楚的地方,请随时询问。

编辑:我有这个DataTableList<DataTable> lstDataTable 列表,我想要将列表中每个表中的所有行插入到名为EmpWorkSchedule 的数据库表中,每行中的所有值都是顺序的,即第一列对应于数据库表中的第 1 列,依此类推,好吗?但是现在所有行都有所有列的值,有些有 6,有些 7,有些 8.. 我想要的是对于列,数据行中没有值,应该在数据库表中保留为空,其余所有值都应插入。

另外,使用adapted 似乎不太可能,因为它与select 一起使用,我没有选择任何东西,我正在插入一些东西。

【问题讨论】:

  • 恐怕你的问题不够清楚
  • 那么有什么问题,你有什么尝试?您是否尝试过使用 DataAdapter 并提供适当的 Insert- 和 UpdateCommands?你用的是什么dbms?可以显示插入记录的sql吗?
  • @TimSchmelter 我可以尝试使用 datadapted,但不是仅与 SELECT 一起使用吗?我必须将所有这些数据插入到表中,而不是选择任何东西
  • @JohnGathogo 现在清楚了吗?
  • @Razort4x dataAdapter 还将执行插入、更新和删除操作。您只需要告诉它为每个场景执行什么 SQL。

标签: c# database list datatable


【解决方案1】:

也许您只需要循环您的 DataTable 并将每行记录保存在您的数据库中 类似的东西:

你的数据表

Col1 |  Col2
abc  |  456 
def  |  789

在你的代码后面做类似的事情:

foreach(DataRow row in YourDataTable.Rows)
{

  string myColumn1  = row["Col1"].ToString();  
  int mycolumn2 =  Convert.ToInt32(row["Col2"]);

  //Your Insert Statement
  //First Loop you will get  
  //myColumn1 = abc and myColumn2=456
  //2nd loop will be def and 789

}

问候

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多