Pergunta

For example, the following code prints "System.Int32", not "int":

string connArgs = "..."; // use your settings here
string query = "SELECT 1";
using (SqlConnection conn = new SqlConnection(connArgs)) {
  conn.Open();
  SqlCommand cmd = new SqlCommand(query, conn);
  using (SqlDataReader reader = cmd.ExecuteReader())
    for (int col = 0; col < reader.VisibleFieldCount; ++col)
      Console.WriteLine(reader.GetFieldType(col));
}

How can I obtain the underlying SQL type, not just its equivalent .NET system type?

Foi útil?

Solução

You can use a GetDataTypeName method for that:

Gets a string representing the data type of the specified column.

for (int col = 0; col < reader.VisibleFieldCount; ++col) {
    Console.WriteLine(reader.GetDataTypeName(col));
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top