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();
    }
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值