从ASP.Net 3.5执行存储过程

时间:2011-08-04 09:56:13

标签: asp.net ado.net

我需要帮助将前缀传递给系统过程..

exec [your database name]..sp_tables

在上面的代码中,[您的数据库名称]应该是文本框值 这是我的代码..

string DatabaseName = txtbox.Text;
        using (SqlDataAdapter sda = new SqlDataAdapter("exec ['"+DatabaseName+"']..sp_tables", conn))
        {
            DataSet ds = new DataSet();
            sda.Fill(ds);
            DropDownList2.DataTextField = "TABLE_NAME";
            DropDownList2.DataSource = ds;
            DropDownList2.DataBind();
        }

我收到错误

 Database '.net'' does not exist. Make sure that the name is entered correctly.

执行时

 exec [.net]..sp_tables

我正确地得到了结果 有什么建议?? 在此先感谢..

2 个答案:

答案 0 :(得分:0)

您正在预先添加并附加单引号,因此错误。 DBnames不需要引号。

尝试:

new SqlDataAdapter("exec ["+DatabaseName+"]..sp_tables", conn))

答案 1 :(得分:0)

exec [your database name]..sp_tables

Here in above code the [your database name] should be a textbox value here is my code..

string DatabaseName = txtbox.Text;
        using (SqlDataAdapter sda = new SqlDataAdapter("exec ["+DatabaseName+"]..sp_tables", conn))
        {
            DataSet ds = new DataSet();
            sda.Fill(ds);
            DropDownList2.DataTextField = "TABLE_NAME";
            DropDownList2.DataSource = ds;
            DropDownList2.DataBind();