asp.net dropdownlist和gridview
我已经创建了2个DropdownList和1个GridView 第一个下拉列表动态加载并显示数据库名称 第二个下拉列表根据在第一个下拉列表中选择的数据库名称加载并显示表名 根据表格名称,数据必须显示在GridView中 我已经写了代码,显示数据库名称和工作良好asp.net dropdownlist和gridview,asp.net,Asp.net,我已经创建了2个DropdownList和1个GridView 第一个下拉列表动态加载并显示数据库名称 第二个下拉列表根据在第一个下拉列表中选择的数据库名称加载并显示表名 根据表格名称,数据必须显示在GridView中 我已经写了代码,显示数据库名称和工作良好 private void populateDatabasename() { SqlConnection con = new SqlConnection(@"Data Source=SAI- PC\SQ
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();
}
我不确定是否需要,但您应该在连接字符串中提供db名称<代码>数据库=北风在本例中,使用
System.Data.SqlClient.SqlConnectionStringBuilder
类更好。然后,如果用户拥有正确的权限,您可以查询表名。我认为您应该在用于填充表的连接字符串中包含数据库名
用这样的东西
SqlConnection con=newsqlconnection(@“Data Source=SAI-PC\SQLEXPRESS;Database=“+Dropdownlist1.selecteditem.text+”;“integratedsecurity=True”)
然后阅读表格并继续尝试以下操作:
string dbName = ddlDbName.SelectedValue;
string strcon = "server=SAI-PC\\SQLEXPRESS;database= " + dbName + ";providerName=\"System.Data.SqlClient\"";
SqlConnection con = new SqlConnection(strcon);
con.Open();
这可能是偶然的,但在
SqlDataAdapter
中,您使用了@Dbname
和大写字母D,并且在为所使用的参数@Dbname
分配一个小D时。不知道是否区分大小写。谢谢。。。。。。。我得到了答案。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。cmd.CommandText=“从“+drddatabase.SelectedValue+”+“sys”+“+”表中选择名称作为表名谢谢…….我得到了答案………..cmd.CommandText=“从“+drddatabase.SelectedValue+”+“sys”+“+”表中选择名称作为表名”;