4

我创建了 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();
}

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

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();
}
4

3 回答 3

0

尝试这个:

        string dbName = ddlDbName.SelectedValue;
        string strcon = "server=SAI-PC\\SQLEXPRESS;database= " + dbName + ";providerName=\"System.Data.SqlClient\"";
        SqlConnection con = new SqlConnection(strcon);
        con.Open();
于 2013-07-26T11:55:28.590 回答
0

我不确定它是否需要,但您应该在连接字符串中提供数据库名称。Database=Northwind;在这种情况下,使用System.Data.SqlClient.SqlConnectionStringBuilder类就更好了。然后,如果用户具有正确的权限,您可以查询表名。

于 2012-11-13T11:06:50.363 回答
0

我认为您应该在用于填充表的连接字符串中包含数据库名称

使用这样的东西

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

然后阅读表格并继续

于 2012-11-13T11:53:21.037 回答