2

我有一个数据集包含 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);

提前致谢。

4

3 回答 3

9
   foreach (DataColumn col in dt.Columns)
     {
          if (col.DataType == typeof(DateTime)) continue;
          //Execute business logic for other columns
     }
于 2013-06-11T10:39:54.233 回答
2

试试这个代码来获取数据集表列的数据类型:

if (Dataset1.Tables[0].Columns[1].ColumnName.ToLower().Contains("date") || Dataset1.Tables[0].Columns[1].DataType.ToString() == "System.DateTime")                              
{
   //Do work;
}

希望你喜欢。

于 2013-06-11T10:28:19.290 回答
2

尝试这个 :

            数据集 ds = new DataSet();
            数据表 dt = ds.Tables[0];

                foreach(dt.Columns 中的 DataColumn dc)
                {
                    Console.WriteLine(dc.DataType);
                }

要检查数据类型,您还可以在循环中执行以下操作,即使对于其他数据类型也是如此。

                    if(dc.DataType == typeof(System.Decimal))
                    {

                    }
                    否则 if (dc.DataType == typeof(System.DateTime))
                    {

                    }
                    否则 if (dc.DataType == typeof(System.String))
                    {

                    }
于 2013-06-11T10:29:32.713 回答