我有一个包含1个表的数据集,我希望在表格上循环。
在循环内部我想检查第1列是否为日期类型转义该列并移至下一列。请帮助我。
excelConnection = new OleDbConnection(connectionString);
//Get the name of First Sheet
excelConnection.Open();
excelSheet = excelConnection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
string sheetName = excelSheet.Rows[0]["TABLE_NAME"].ToString();
excelConnection.Close();
string query = "SELECT * FROM [" + sheetName + "]";
excelCommand = new OleDbCommand(query, excelConnection);
excelDataAdapter = new OleDbDataAdapter(excelCommand);
excelDataAdapter.Fill(excelData);
提前致谢。
答案 0 :(得分:9)
foreach (DataColumn col in dt.Columns)
{
if (col.DataType == typeof(DateTime)) continue;
//Execute business logic for other columns
}
答案 1 :(得分:2)
试试这个:
DataSet ds = new DataSet(); DataTable dt = ds.Tables[0]; foreach (DataColumn dc in dt.Columns) { Console.WriteLine(dc.DataType); }
要检查数据类型,您还可以在循环中执行以下操作,即使对于其他数据类型也是如此。
if(dc.DataType == typeof(System.Decimal)) { } else if (dc.DataType == typeof(System.DateTime)) { } else if (dc.DataType == typeof(System.String)) { }
答案 2 :(得分:1)
尝试使用此代码获取数据集数据类表列:
if (Dataset1.Tables[0].Columns[1].ColumnName.ToLower().Contains("date") || Dataset1.Tables[0].Columns[1].DataType.ToString() == "System.DateTime")
{
//Do work;
}
希望你喜欢它。