做一个表 = reader.GetSchemaTable(); 在 sql server 2005 上,我返回一列 DataTypeName 以找出我的 select 语句的数据类型。
在 oracle 服务器上执行相同的代码会返回 NO DataTypeName 列。
然后如何使用 select column1 from tablename 语句获取 column1 字段的数据类型名称?
做一个表 = reader.GetSchemaTable(); 在 sql server 2005 上,我返回一列 DataTypeName 以找出我的 select 语句的数据类型。
在 oracle 服务器上执行相同的代码会返回 NO DataTypeName 列。
然后如何使用 select column1 from tablename 语句获取 column1 字段的数据类型名称?
好吧,您使用的是哪个阅读器,有一种OracleDataReader.GetSchemaTable
方法应该可以提供您想要的
使用 Oracle 时,DbDataReader.GetSchemaTable 不起作用。
您可以使用 OracleDataReader.GetSchemaTable。
另一种选择是遍历 DbDataReader 字段,如下所示:
public bool Test(DbDataReader _dr, string columnName)
{
for (int i = 0; i <= _dr.FieldCount - 1; i++)
{
if ((_dr.GetName(i).Equals(columnName, StringComparison.InvariantCultureIgnoreCase)))
{
//Change this to your needs
_dr.GetDataTypeName(i);
return true;
}
}
return false;
}