【问题标题】:Retrieve column names of a table into a combo box将表的列名检索到组合框中
【发布时间】:2017-07-24 04:14:01
【问题描述】:

我正在使用 c# windows 窗体应用程序。我有一个包含许多表的数据库。每个表都有几列。我需要用所选表的列名填充组合框。

【问题讨论】:

    标签: c# sql-server


    【解决方案1】:

    在 SQL Server 2005 及更高版本上执行此操作的正确方法(您没有明确指定您使用的版本)是检查系统目录视图,该视图位于 sys 架构中:

    SELECT 
        name
    FROM    
        sys.columns
    WHERE
        object_id = object_id('YourTableNameHere')
    ORDER BY
        name    
    

    sys.columns 目录视图为您提供了有关表列的大量信息 - 表由 object_id 列标识,这是相关表的内部 ID。

    【讨论】:

      【解决方案2】:

      这应该会给你表格列表

      SELECT name 
      FROM dbo.sysobjects 
      WHERE xtype = 'U' 
      

      这应该为您提供每个表的列信息

      select * 
      from INFORMATION_SCHEMA.COLUMNS 
      where TABLE_NAME = 'yourTable'
      

      【讨论】:

      • “sysobjects”自 SQL Server 2005 起已弃用 - 请开始使用“sys.objects”和“sys”架构中的其他目录视图
      【解决方案3】:

      以下是从 sql server 查询列名的方法。其他数据库与此类似。 http://blog.sqlauthority.com/2008/08/05/sql-server-2005-get-field-name-and-type-of-database-table/

      至于将项目放入组合框,您可以在 msdn 上的此链接 http://msdn.microsoft.com/en-us/library/aa983551(VS.71).aspx 上找到大量相关信息

      享受吧!

      【讨论】:

        【解决方案4】:

        您可以使用此代码

        string  sqlquery="select column_name FROM INFORMATION_SCHEMA.COLUMNS 
        WHERE TABLE_NAME = 'student' ORDER BY ORDINAL_POSITION";
             DataFind.Open();
             cmd = new SqlCommand(sqlquery, DataFind);
        
             SqlDataReader DR = cmd.ExecuteReader();
        
               while (DR.Read())
             {
                 comboBox1.Items.Add(DR[0]);
        
             }
             DataFind.Close();
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-03-16
          • 1970-01-01
          • 2013-05-21
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多