Asp.Net(C#) 遍历数据库表名,列名

ADO.NET提供了个很简单的方法就能实现遍历数据库表名,列名。不用写什么语句的。

ACCESS:

 

 

 1     private readonly static string ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + System.IO.Path.Combine(GetConfig.AppPath, GetConfig.ConnectString);
 2     protected void Page_Load(object sender, EventArgs e)
 3     {
 4         OleDbConnection conn = new OleDbConnection(ConnectionString);
 5         conn.Open();
 6         DataTable dt = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,null);
 7         conn.Close();
 8         GridView1.DataSource = dt;
 9         GridView1.DataBind();
10     }

 

 

以上取得了所有的表格,可以在GridView1里预览表格的各个属性。自己建立的表格就是TABLE_TYPE为Table的行对应的记录。很简单就能拿到所有的表格名。

效果如图:

TABLE_CATALOGTABLE_SCHEMATABLE_NAMETABLE_TYPETABLE_GUIDDESCRIPTIONTABLE_PROPIDDATE_CREATEDDATE_MODIFIED
  MSysAccessObjectsACCESS TABLE   2003-3-7 17:53:262003-3-7 17:53:26
  MSysAccessXMLACCESS TABLE   2007-6-1 14:17:592007-6-1 14:17:59
  MSysACEsSYSTEM TABLE   2000-9-21 5:31:072000-9-21 5:31:07
  MSysObjectsSYSTEM TABLE   2000-9-21 5:31:072000-9-21 5:31:07
  MSysQueriesSYSTEM TABLE   2000-9-21 5:31:072000-9-21 5:31:07
  MSysRelationshipsSYSTEM TABLE   2000-9-21 5:31:072000-9-21 5:31:07
  UsersTABLE   2007-6-1 14:17:592007-6-1 14:31:41



得到所有的列名也类似,把OleDbSchemaGuid.Tables换成OleDbSchemaGuid.Columns就可以了。
代码:

    private readonly static string ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + System.IO.Path.Combine(GetConfig.AppPath, GetConfig.ConnectString);
    
protected void Page_Load(object sender, EventArgs e)
    
{
        OleDbConnection conn 
= new OleDbConnection(ConnectionString);
        conn.Open();
        DataTable dt 
= conn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns,null);
        conn.Close();
        GridView1.DataSource 
= dt;
        GridView1.DataBind();
    }

效果:
 
TABLE_CATALOGTABLE_SCHEMATABLE_NAMECOLUMN_NAMECOLUMN_GUIDCOLUMN_PROPIDORDINAL_POSITIONCOLUMN_HASDEFAULTCOLUMN_DEFAULTCOLUMN_FLAGSIS_NULLABLEDATA_TYPETYPE_GUIDCHARACTER_MAXIMUM_LENGTHCHARACTER_OCTET_LENGTHNUMERIC_PRECISIONNUMERIC_SCALEDATETIME_PRECISIONCHARACTER_SET_CATALOGCHARACTER_SET_SCHEMACHARACTER_SET_NAMECOLLATION_CATALOGCOLLATION_SCHEMACOLLATION_NAMEDOMAIN_CATALOGDOMAIN_SCHEMADOMAIN_NAMEDESCRIPTION
  MSysAccessObjectsData  1 106128 39923992             
  MSysAccessObjectsID  2 1223   10            
  MSysAccessXMLId  1 903   10            
  MSysAccessXMLLValue  2 234128 00             
  MSysAccessXMLObjectGuid  3 12272                
  MSysAccessXMLObjectName  4 106130 65130             
  MSysAccessXMLProperty  5 106130 65130             
  MSysAccessXMLValue  6 106130 255510             
  UsersPassword  3 106130 50100             
  UsersUserAns  5 106130 50100             
  UsersUserCoin  601223   10            
  UsersUserID  1 903   10            
  UsersUserName  2 106130 50100             
  UsersUserQue  4 106130 50100             


SQL Server:
获得表
 1     private readonly static string ConnectionString = "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=AMT;Data Source=(local);";
 2     protected void Page_Load(object sender, EventArgs e)
 3     {
 4         SqlConnection conn = new SqlConnection(ConnectionString);
 5         conn.Open();
 6         DataTable dt = conn.GetSchema("Tables",null);
 7         conn.Close();
 8         GridView1.DataSource = dt;
 9         GridView1.DataBind();
10     }

获得列
 private readonly static string ConnectionString = "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=AMT;Data Source=(local);";
    protected void Page_Load(object sender, EventArgs e)
    {
  SqlConnection conn = new SqlConnection(ConnectionString);
  conn.Open();
  DataTable dt = conn.GetSchema("Columns",null);
  conn.Close();
  GridView1.DataSource = dt;
  GridView1.DataBind();
    }
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值