如何在.NET/C#中获取查询结果的基础SQL类型?

Rok*_*iša 3 .net c# sql sql-server sql-types

例如,以下代码打印" System.Int32",而不是" 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));
}
Run Code Online (Sandbox Code Playgroud)

如何获取基础SQL类型,而不仅仅是其等效的.NET系统类型?

das*_*ght 5

你可以使用一种GetDataTypeName方法:

获取表示指定列的数据类型的字符串.

for (int col = 0; col < reader.VisibleFieldCount; ++col) {
    Console.WriteLine(reader.GetDataTypeName(col));
}
Run Code Online (Sandbox Code Playgroud)