Asp.net获取数据库文件中表名的列表,并显示

1.了解一下Sqlconnection的GetSchema()方法:

protected void Page_Load(object sender, EventArgs e)
{
    superSqlConnection mycnn = new superSqlConnection();
    mycnn.open();
    DataTable dt =  mycnn.cnn.GetSchema("tables");
    GridView gv = new GridView();
    gv.DataSource = dt;
    gv.DataBind();
    div1.Controls.Add(gv);
    mycnn.close();
}

GetSchema()返回的对象是一个DataTable,参数填写Tables,暂时还不明白。
通过gridview可以看到这个表的结构如下:
Asp.net获取数据库文件中表名的列表,并显示
主要看后面的两列,TABLE_NAME就是这个数据库文件里所有的表的名字,TABLE_TYPE是这个表的类型,这里用的是SQL server,如果是access ,这个表的信息就特别多,而且TABLE_TYPE也有很多不同的值。
2.使用DataTable.Select()方法:
DataTable.Select()的返回值是一个包含符合条件的DataRow的数组。
Asp.net获取数据库文件中表名的列表,并显示
总之就是返回了一个你想要的一个DataRow 的数组。

   superSqlConnection mycnn = new superSqlConnection();
    mycnn.open();
    DataTable dt =  mycnn.cnn.GetSchema("tables");
    string str="";
    foreach (DataRow dr in dt.Select("TABLE_TYPE='BASE TABLE'"))
    {
        str += dr["TABLE_NAME"].ToString()+"<br/>";
    }
    Response.Write(str);
    mycnn.close();

dt.Select(“TABLE_TYPE=‘BASE TABLE’”),返回的是所有的TABLE_TYPE=BASE TABLEd的行,之后在遍历这个数组,每次读取这个行内的TABLE_NAME的字段的值。输出如下:
Asp.net获取数据库文件中表名的列表,并显示
这样就拿到了这个数据库里的所有的表。
3.将所有的表名导入到dropdownList 内:
(1)前台界面放入一个DropDownList,ID=“DropDownList1”。
(2)后台代码为:

superSqlConnection mycnn = new superSqlConnection();
mycnn.open();
DataTable dt =  mycnn.cnn.GetSchema("tables");
ListItem li;
foreach (DataRow dr in dt.Select("TABLE_TYPE='BASE TABLE'"))
{
    li = new ListItem();
    li.Text = dr["TABLE_NAME"].ToString();
    DropDownList1.Items.Add(li);
}

    mycnn.close();

显示效果:
Asp.net获取数据库文件中表名的列表,并显示
4,添加一个按钮,查看选中项的数据表。在用一下Dataset和SqlDataAdapter
(1)Dataset和SqlDataAdapter:
最常用的是DataAdapter对象的Fill()方法给他填充数据。

DataSet ds = new DataSet();
SqlDataAdapter adapt = new SqlDataAdapter(sqlcmd,con);
adapt.Fill(ds,"mytest");

(2)添加一个查看按钮:
后台代码:

protected void Button1_Click(object sender, EventArgs e)
{
    superSqlConnection mycnn = new superSqlConnection();
    mycnn.open();
    string tableName = DropDownList1.SelectedItem.Text;
    string sql = "select * from " + tableName;
    DataSet ds = new DataSet();
    SqlDataAdapter adapter = new SqlDataAdapter(sql,mycnn.cnn);
    adapter.Fill(ds);
    //用gridView 显示数据
    GridView gv = new GridView();
    gv.DataSource = ds;
    gv.DataBind();
    div1.Controls.Add(gv);
    mycnn.close();
}

Asp.net获取数据库文件中表名的列表,并显示
点击查看之后:
Asp.net获取数据库文件中表名的列表,并显示
在切换为另一个表:
Asp.net获取数据库文件中表名的列表,并显示
这样就可以随意的查看不同的表了。
5.总结:
这次用到了很多不了解的东西,GetSchema()方法,DataTable.Select()的方法,还有DataSet以及SqlDataAdapter。现在只是知道了一点很浅的用法,具体的还是不清楚,之后有时间的话,最好仔细了解一遍。