DataTable获取列名 DataTable批量更新至数据库

Damara ·
更新时间:2024-09-20
· 745 次阅读

  好久没写东西了,这几个月也没下功夫钻研技术,愧疚啊。说下近刚学会的DataTable 的用法吧,新手适合看下。   1 DataTable 获取列名   在处理数据的时候大家都会用到模型,从datatable遍历数据的时候可以用datatable的columns属性获取列名,然后可以动态的用datatable   生成一个josn字符串,然后再讲json字符串转化成你想要的model,是不是很方便?。   下面是将datatable转化为json数组的方法。 private string DataTableToModel(DataTable dt) { var jsonStr = ""; if (dt.Rows.Count > 0) { jsonStr = "["; foreach (DataRow row in dt.Rows) { jsonStr += "{"; foreach (DataColumn item in dt.Columns) { var type = item.DataType;//还可以获取列的数据类型 if (item.DataType.Equals (System.Type.GetType ("System.DateTime"))) { Convert.ToDateTime (row[item.ToString ()]).ToString ("yyyy-MM-dd HH:mm:ss").Trim (); } else { jsonStr += """ + item.ToString () + "":"" + row[item.ToString ()].ToString () + "","; } } jsonStr += "},"; } jsonStr = jsonStr.TrimEnd (',') + "]"; } return jsonStr; }   这样你不必每次手动指定列名了,而且这个方法通用性也很强的,所有的从datatable里读取数据的地方都可以调用这个方法。   使用DataTable批量更新数据   因为要做Excel导入,用到了datatable批量插入,这个方法无疑是快省事的。   SqlBulkCopy bcp= new SqlBulkCopy(connectionString, SqlBulkCopyOptions.UseInternalTransaction);   sqlbulkcopy.DestinationTableName = "Table_1";//数据库中的表名   bcp.ColumnMappings("ColumnName","TargetColumnName");//当前数据中和目标表之间的对应列 如果全部对应的话可以不用设置此属性   sqlbulkcopy.WriteToServer(dataset.Tables[0]);   ok,先分享这么多,如有不足之处还望各位能不吝赐教。



更新 数据 datatable 数据库

需要 登录 后方可回复, 如果你还没有账号请 注册新账号