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