0

我试图弄清楚如何获取数据库表中每个属性的数据类型以将其用于一些验证示例:我在我的 sql 数据库中有表:声明。该表包含 4 个属性,其中一个属性是: *mat_fisc* 它的数据类型是 numeric(7,0)

我想检索 varchar 数据类型和属性的最大长度 (7)

验证包括:如果我有一个数字属性并且数据的长度<属性的最大长度,那么我必须添加 0 直到它填满所有空间。

例如,我有属性 *mat_fisc*,它的数据类型是 numeric(7,0) ,并且我有包含 4 个字符的数据 1115,然后我必须用 0 填充它,直到长度达到 7 然后数据将变为:1115000 我们如何在c#中引用数据类型和最大长度?

4

2 回答 2

3

您可能想getSchemaTable()在类上使用该方法DataTableReader。方法文档可以在这里找到。查看此 msdn 文章以获取完整示例。在调用该方法之前需要进行一些设置(即,您必须创建一个连接并执行一个命令,以便您可以DataTableReader调用getSchemaTable())。如果您实现了某些功能并需要帮助,请使用代码和特定问题更新您的帖子,我会尽力提供帮助。

于 2013-06-19T21:57:54.137 回答
0

以下代码在我执行它时期望它显示它只显示的所有列类型和名称: 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 );

                 }
             }
于 2013-06-20T10:05:49.877 回答