.net - 获取 DataColumn 的原始数据格式

标签 .net sql database datacolumn

如何获取 DataColumn 对象的原始数据格式(在数据库中)?

我有来自 DataTable 的 DataColumn 对象,它是打开 DBCommand SQL“选择”查询的结果的一部分。

如何获取有关查询返回的原始数据格式的信息(即“varchar[50]”等)。

我知道DataColumn.DataType,但这里的信息不够具体,例如无法区分varchar和char或区分日期和时间戳或获取varchar字段的最大长度等。

直接从服务器数据库scheme获取信息不是我要找的解决方案,因为查询文本是用户输入的,我不想自己解析文本来找出是什么表的什么列使用并且因为可能有一些列在数据库中没有相应的条目(例如,从 MyTable 中选择 ColumnA || Column B, 'SomeLiteral', 12 * ColumnC, null)

最佳答案

您可以尝试这样的操作,并检查结果(在 schemaTable 表中)

DataTable schemaTable;

String sql = "select * from ...";

using (SqlConnection cnx = new SqlConnection(Properties.Settings.Default.ConnectionString))
{
  using (SqlCommand cmd = new SqlCommand(sql, cnx))
  {
     cnx.Open();

     using (SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.KeyInfo))
     {
        schemaTable = rdr.GetSchemaTable();
     }
  }
}

关于.net - 获取 DataColumn 的原始数据格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6404296/

相关文章:

c# - 生成总和大于提供值的随机但均匀部分的列表

MySQL : How to perform multiple calculations and group by two columns?

php - 数据库搜索减去 "The"前缀

Mysql 查询 : Find Customer W/Orders but without Payment

database - 基于文档的数据库与关系数据库的优缺点

java - 用于跟踪文档管理系统内文档状态的数据库

c# - 如何在 Fluent NHibernate 中从数据库 char 数据类型中修剪字符串属性数据类型

c# - C# .NET Winform 应用程序中的解析问题

c# - 如何将泛型类型传递给泛型方法?

php - 从表mysql php中选择唯一记录