asp.net下拉列表和gridview

时间:2012-11-13 10:54:23

标签: asp.net

我创建了2个DropdownList和1个GridView

第一个DropdownList加载并显示数据库动态命名

第二个下拉列表加载并显示表名,基于数据库名称在第一个下拉列表中选择

基于表名称数据必须在GridView中显示........

我编写的代码显示数据库名称并且工作正常

private void populateDatabasename() {

        SqlConnection con = new SqlConnection(@"Data Source=SAI-           PC\SQLEXPRESS;Integrated Security=True");
        con.Open();
        SqlDataAdapter da = new SqlDataAdapter("select name,collation_name from sys.databases order by name", con);
        DataSet ds = new DataSet();
        da.Fill(ds, "dbname");
        DropDownList1.DataSource = ds.Tables["dbname"];
        DropDownList1.DataTextField = "name";
        DropDownList1.DataValueField = "name";
        DropDownList1.DataBind();
}

基于数据库名称表必须显示.....如何在以下代码中传递数据库名称(在第1个下拉列表中选择)..... 这是传递数据库名称的正确方法

private void populateTableName() {                

        SqlConnection con = new SqlConnection(@"Data Source=SAI-PC\SQLEXPRESS;Integrated Security=True");
        con.Open();
        SqlDataAdapter da = new SqlDataAdapter("select name from "+"@Dbname"+".sys.tables", con);

        da.SelectCommand.Parameters.Add("@dbname", SqlDbType.VarChar);
        da.SelectCommand.Parameters["@dbname"].Value = DropDownList1.SelectedValue;
        DataSet ds = new DataSet();
        da.Fill(ds, "dbname1");
        DropDownList2.DataSource = ds.Tables["dbname1"];
        DropDownList2.DataTextField = "name";
        DropDownList2.DataValueField = "name";
        DropDownList2.DataBind();
}

3 个答案:

答案 0 :(得分:0)

我不确定是否需要,但你应该在连接字符串中给出db名称。在这种情况下Database=Northwind;,更好地使用System.Data.SqlClient.SqlConnectionStringBuilder类。然后,如果用户拥有正确的权限,您可以查询表名。

答案 1 :(得分:0)

我认为您应该在用于填充表

的连接字符串中包含DataBase名称

使用类似的东西

SqlConnection con = new SqlConnection(@“Data Source = SAI-PC \ SQLEXPRESS; Database =”+ Dropdownlist1.selecteditem.text +“; Integrated Security = True”);

然后阅读表并继续

答案 2 :(得分:0)

试试这个:

        string dbName = ddlDbName.SelectedValue;
        string strcon = "server=SAI-PC\\SQLEXPRESS;database= " + dbName + ";providerName=\"System.Data.SqlClient\"";
        SqlConnection con = new SqlConnection(strcon);
        con.Open();