我正在尝试获取datatable的dataType,代码是
for (int j = 0; j < dt.Columns.Count; j++)
{
columntypes[j] = dt.Columns[j].GetType().Name;//dt.Rows[0][j].GetType().Name;
}
选中dt.Rows[0][j].GetType().Name;
工作正常。但是如果空数据表出现错误,那么我尝试使用dt.Columns[j].GetType().Name;
但它没有给出正确的解决方案
答案 0 :(得分:1)
答案 1 :(得分:0)
DataTable.Columns属性是一个DataColumnCollection,可以通过列名索引以获取DataColumn,它具有DataType属性。 或者您可以这样做:
SqlCommand cmd = connection.CreateCommand();
cmd.CommandText = "SET FMTONLY ON; select column from table; SET FMTONLY OFF";
SqlDataReader reader = cmd.ExecuteReader();
SqlDbType type = (SqlDbType)(int)reader.GetSchemaTable().Rows[0] ["ProviderType"];
答案 2 :(得分:0)
您也可以这样使用:
int j=0;
foreach (DataColumn dc in DT.Columns)
{
columntypes[j++] = dc.DataType.Name.ToString();
}