新声明一个DataTable
DataTable queueTable = new DataTable(); queueTable.Columns.Add("LogType", typeof(string)); queueTable.Columns.Add("Success", Type.GetType("System.Int32")); queueTable.Columns.Add("EndDate", Type.GetType("System.DateTime")); queueTable.Columns.Add("User_Id", Type.GetType("System.Int32")); return queueTable;
有时候,数据的返回结果是DataTable类型的数据(不止一行,形似Table)
想要获取里面的列名和值可以通过以下方法:
DataTable dt = dataSet.Tables[0]; //取第一行 foreach (DataColumn col in dt .Columns) { string name=col.ColumnName;//获取到DataColumn列对象的列名 dt.Rows[0][col.ColumnName].ToString(); //获取对应列对应名称的值 }
判断DataTable是否为空
if(dt.Rows.Count>0)
【将日志批量写入数据库】
public static Queue<Sys_Log> loggerQueueData = new Queue<Sys_Log>(); while (true) { try { if(loggerQueueData.Count()>0 && queueTable.Rows.Count < 500) { DeQueueToTable(queueTable); continue; } //将DataTable写入数据库 ... } } private static void DequeueToTable(DataTable queueTable) { //读取一行(并删除) Sys_Log log = loggerQueueData.Dequeue(); //新声明一行DataTable DataRow row = queueTable.NewRow(); //赋值 row["..."]=log.XX //加入 queueTable.Rows.Add(row); }