如何在C#中获取数据集表列数据类型

时间:2013-06-11 10:25:46

标签: c#

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

提前致谢。

3 个答案:

答案 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;
}

希望你喜欢它。