C#中读取数据库名,表名,列名

在C#中读取出所有数据库名,和相应的表名 !! 
全部源代码 : 
using System; 
using System.Data; 
using System.Configuration; 
using System.Collections; 
using System.Web; 
using System.Web.Security; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 
using System.Web.UI.HtmlControls; 
using System.Data.SqlClient; 
public partial class ReadAllTables : System.Web.UI.Page 

    protected void Page_Load(object sender, EventArgs e) 
    { 
        if (!Page.IsPostBack) 
        { //取得所有数据库名 
            string constr = "data source=1f5f1616d1bb489\\sqlexpress;Integrated Security=True"; 
            SqlConnection myConnection = new SqlConnection(constr); 
            string strSQL = "select name from sysdatabases where dbid>=5 order by dbid desc"; 
            DataSet ds = new DataSet(); 
            SqlDataAdapter myCommand = new SqlDataAdapter(strSQL, myConnection); 
            myCommand.Fill(ds, "database"); 
            this.AllDataBases.DataSource = ds.Tables["database"].DefaultView; 
            this.AllDataBases.DataValueField = ds.Tables["database"].Columns[0].ColumnName; 
            this.AllDataBases.DataTextField = ds.Tables["database"].Columns[0].ColumnName; 
            this.AllDataBases.DataBind(); 
        } 
    } 
    protected void AllDataBases_SelectedIndexChanged(object sender, EventArgs e) 
    { 
        string dbname = this.AllDataBases.SelectedValue.ToString();  //得到选中的数据库 
        string constr = "data source=1f5f1616d1bb489\\sqlexpress;Initial Catalog="+dbname+";Integrated Security=True"; 
        SqlConnection myConnection = new SqlConnection(constr); 
        //根据选中数据库,得到相应的所有表 
        string strSQL = "select name from sysobjects where type='"+'U'+"'"; 
        DataSet ds = new DataSet(); 
        SqlDataAdapter myCommand = new SqlDataAdapter(strSQL, myConnection); 
        myCommand.Fill(ds, "table"); 
        this.AllTables.DataSource = ds.Tables["table"].DefaultView; 
        this.AllTables.DataValueField = ds.Tables["table"].Columns[0].ColumnName; 
        this.AllTables.DataTextField = ds.Tables["table"].Columns[0].ColumnName; 
        this.AllTables.DataBind(); 
         
    } 
  protected void AllTables_SelectedIndexChanged(object sender, EventArgs e) 
    { 
        string dbname = this.AllDataBases.SelectedValue.ToString(); 
        string tablename = this.AllTables.SelectedValue.ToString(); 
        string constr = "data source=1f5f1616d1bb489\\sqlexpress;Initial Catalog=" + dbname + ";Integrated Security=True"; 
        SqlConnection myConnection = new SqlConnection(constr); 
        string strSQL = " select name  from syscolumns  where (id = (select id from sysobjects  where (id = OBJECT_ID('"+tablename+"'))))order by colid"; 
        DataSet ds = new DataSet(); 
        SqlDataAdapter myCommand = new SqlDataAdapter(strSQL, myConnection); 
        myCommand.Fill(ds, "column"); 
        this.AllColumns.DataSource = ds.Tables["column"].DefaultView; 
        this.AllColumns.DataValueField = ds.Tables["column"].Columns[0].ColumnName; 
        this.AllColumns.DataTextField = ds.Tables["column"].Columns[0].ColumnName; 
        this.AllColumns.DataBind(); 
    } 

//其中AllDataBases ,AllColumns和 AllTables 都为dropdownlist控件 !!









本文转自 yuanzhitang 51CTO博客,原文链接:http://blog.51cto.com/yuanzhitang/499313,如需转载请自行联系原作者
上一篇:10 个神奇的网站显示超强的 HTML5 技术


下一篇:T-SQL with关键字 with as 递归循环表