首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我们如何从getschemaTable获取列大小和dataType?

我们如何从getschemaTable获取列大小和dataType?
EN

Stack Overflow用户
提问于 2013-06-20 18:21:20
回答 2查看 15.8K关注 0票数 3

我是一个新手,我试图从我的数据库中的某个表中检索列NAme,Size ( max legth )和DataType,以下代码在我执行它时希望它显示所有的列类型和名称(我不知道如何引用Size,我使用了ColumnSize,但据说DataColumn不包含此方法的定义),但在执行它时,它只显示: IsColumnSetSystem.Boolean这是代码:

代码语言:javascript
复制
private void button1_Click(object sender, EventArgs e)
    {
        string EF = textBox1.Text;

        try{
            //SqlDataAdapter adapter = SetupDataAdapter("SELECT * FROM id_declarant");
     SqlCommand comm = new SqlCommand();
     string connectionString = @"Data Source=.\SQLEXPRESS;Initial Catalog=declaration;Integrated Security=True";
      comm.Connection=new SqlConnection(connectionString);
            String sql = @"SELECT * 
                  FROM id_declarant,declarant
                 WHERE (declarant.Nom_pren_RS='" + EF + "') and (id_declarant.mat_fisc=declarant.mat_fisc)  "; 
     comm.CommandText = sql;
  comm.Connection.Open();
             SqlDataReader reader = comm.ExecuteReader();
             DataTable schemaTable = reader.GetSchemaTable();
             foreach (DataRow row in schemaTable.Rows)
             {
                 foreach (DataColumn column in schemaTable.Columns)
                 {
                     System.IO.File.WriteAllText(@"C:\Users\Manuela\Documents\GL4\WriteLines.txt", column.ColumnName + column.DataType );

                 }
             }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-20 18:35:55

您打印的是GetSchemaTable返回的数据表的列名,而不是它的值,我还建议您使用StringBuilder,并在退出循环时编写所有内容

代码语言:javascript
复制
    StringBuilder sb = new StringBuilder();
    foreach (DataRow row in schemaTable.Rows)
    {
        foreach (DataColumn column in schemaTable.Columns)
        {
            sb.AppendLine(column.ColumnName + ":"  +row[column.ColumnName].ToString());
        }
        sb.AppendLine();
    }
    File.WriteAllText(@"C:\Users\Manuela\Documents\GL4\WriteLines.txt", sb.ToString());
票数 1
EN

Stack Overflow用户

发布于 2013-06-20 18:38:01

也许我在这一点上有点错,但要获得列的名称、大小和数据类型,您可以尝试如下所示:

代码语言:javascript
复制
DataTable schemaTable = reader.GetSchemaTable();
foreach (DataRow row in schemaTable.Rows)
{
    var name = row["ColumnName"];
    var size = row["ColumnSize"];
    var dataType = row["DataTypeName"];
    //append these to a string or StringBuilder for writing out later...
}

但也许这不是你要找的?

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17211155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档