c# – 我们如何从getschemaTable获取Column Size和dataType?

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

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 );

                 }
             }

解决方法

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

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());

相关文章

目录简介使用JS互操作使用ClipLazor库创建项目使用方法简单测...
目录简介快速入门安装 NuGet 包实体类User数据库类DbFactory...
本文实现一个简单的配置类,原理比较简单,适用于一些小型项...
C#中Description特性主要用于枚举和属性,方法比较简单,记录...
[TOC] # 原理简介 本文参考[C#/WPF/WinForm/程序实现软件开机...
目录简介获取 HTML 文档解析 HTML 文档测试补充:使用 CSS 选...