Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
asp.net dropdownlist和gridview_Asp.net - Fatal编程技术网

asp.net dropdownlist和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

我已经创建了2个DropdownList和1个GridView

第一个下拉列表动态加载并显示数据库名称

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

根据表格名称,数据必须显示在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();
}

我不确定是否需要,但您应该在连接字符串中提供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”+“+”表中选择名称作为表名”;