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

本文介绍如何使用SqlConnection的GetSchema()方法获取数据库表信息,并利用DataTable.Select()筛选特定表。此外,还展示了如何通过DropdownList选择表,并使用SqlDataAdapter填充DataSet以展示所选表的数据。

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可以看到这个表的结构如下:

主要看后面的两列,TABLE_NAME就是这个数据库文件里所有的表的名字,TABLE_TYPE是这个表的类型,这里用的是SQL server,如果是access ,这个表的信息就特别多,而且TABLE_TYPE也有很多不同的值。
2.使用DataTable.Select()方法:
DataTable.Select()的返回值是一个包含符合条件的DataRow的数组。
在这里插入图片描述
总之就是返回了一个你想要的一个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的字段的值。输出如下:
在这里插入图片描述
这样就拿到了这个数据库里的所有的表。
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();

显示效果:
在这里插入图片描述
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();
}

在这里插入图片描述
点击查看之后:
在这里插入图片描述
在切换为另一个表:
在这里插入图片描述
这样就可以随意的查看不同的表了。
5.总结:
这次用到了很多不了解的东西,GetSchema()方法,DataTable.Select()的方法,还有DataSet以及SqlDataAdapter。现在只是知道了一点很浅的用法,具体的还是不清楚,之后有时间的话,最好仔细了解一遍。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值