[英]Insert record from c# datatable to a database
我有这个List<DataTable> lstDataSource
表,实际上是数据表List<DataTable> lstDataSource
,现在对于列表中的每个表,我都知道确切地有6行(星期一至星期六!),但是可以有任意数量的列(从6开始到14,也就是员工每天工作的小时数!)所以我知道每个数据表中行和列的限制。 我的观点是如何使用此数据表列表来更新(而不是插入)读取的数据库表EmpWorkSchedule
所有这些值。 我知道插入的lstDataSource.Count * 6
是lstDataSource.Count * 6
对吗? 另外,对于任何没有值的列(某些员工需要6个小时,7个小时等...),该行中的其他列将被设置为null。 (它们在数据库中定义为可为空)。 我希望我自己弄清楚。 那么,我该怎么做呢?
另外,如果有任何不清楚的地方,请随时提出。
编辑:我有DataTable
List<DataTable> lstDataTable
此列表,我想要的是将列表中每个表的所有行插入到名为EmpWorkSchedule
的数据库表中,每行中的所有值都是顺序的,即首先列对应于数据库表中的列1,依此类推,好吗? 但是现在所有行的所有列都具有值,一些具有6,一些7,一些8。我想要的是,对于那些列,数据行中没有值,应该在数据库表中将其保留为null,其余所有值都应插入。
另外,使用适配器似乎不太可能,因为它与select一起使用,我没有选择任何东西,而是要插入一些东西。
也许您只需要在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
}
问候
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.