从数据库中取出所有表(oracle,sqlserver),从表中取出所有的列名及类型.

 

1.从数据库中取出所有表

public  DataSet getDataBaseTables( string  databaseName)
        {
            
try
            {
                Database db 
=  DatabaseFactory.CreateDatabase(databaseName);
                
if (db.GetType().Name  ==   " SqlDatabase " )
                {
                    DBCommandWrapper tables 
=  db.GetSqlStringCommandWrapper( " Select name from sysobjects where xtype = 'U'order by name " );
                    DataSet allTables  =  db.ExecuteDataSet(tables);
                    
return  allTables;
                }
                
else   if (db.GetType().Name  ==   " OracleDatabase " )
                {
                    DBCommandWrapper tables 
=  db.GetSqlStringCommandWrapper( " select TABLE_NAME from user_tables " );
                    DataSet allTables 
=  db.ExecuteDataSet(tables);
                    
return  allTables;
                }
                
return   null ;        
            }
            
catch (Exception ex)
            {
                DataBaseException dbex 
=   new  DataBaseException(ex.Message, ex);
                
throw (dbex);
            }
        }

 

2.从表中取出所有的列及类型:

 

public  DataSet getColumns( string  databaseName, string  tableName)
        {
            
try
            {
                Database db 
=  DatabaseFactory.CreateDatabase(databaseName);
                
if (db.GetType().Name  ==   " SqlDatabase " )
                {
                    DBCommandWrapper columns 
=  db.GetSqlStringCommandWrapper( " select top 0 * from " " + tableName + " " " );
                    DataSet allColumns
=   new  DataSet();
                    allColumns 
=  db.ExecuteDataSet(columns);
                    
return  allColumns;
                }
                
else   if (db.GetType().Name  ==   " OracleDatabase " )
                {
                    DBCommandWrapper columns 
=  db.GetSqlStringCommandWrapper( " select * from  " + tableName + "  where rownum=0 " );
                    
                    DataSet allColumns 
=  db.ExecuteDataSet(columns);
                    
return  allColumns;
                }
                
return   null ;
            }
            
catch (Exception ex)
            {
                DataBaseException dbex 
=   new  DataBaseException(ex.Message, ex);
                
throw (dbex);
            }
        }

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值