将记录从c#datatable插入数据库

时间:2012-06-21 14:11:21

标签: c# database list datatable

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

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

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

1 个答案:

答案 0 :(得分:0)

也许您只需要在DataTable上循环并保存数据库中的每一行记录 喜欢的东西:

您的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

}

此致