记录时选择数据库

时间:2014-04-01 13:53:36

标签: c# asp.net sql-server

我有一个类来打开连接一个关于SQL的所有内容

public class ConnSQLite
{

    public System.Data.SqlClient.SqlConnection Connection;

    public void connect()
    {

        string ConnString = "Data Source=xxx;DataBase=xxx;User ID=xxx;Password=xxx;";
        Connection = new System.Data.SqlClient.SqlConnection(ConnString);
        Connection.Open();
    }
}

我想要的是:

用户在登录时将选择他的数据库并且我想制作" DataBase = Tienda;"像这样:

"DataBase=" + somestringhere + ";"

我尝试了#34;应用["数据库"]"没有工作

还有另一种方法吗?

2 个答案:

答案 0 :(得分:2)

请查看以下用例:

当用户登录时,您可以将所选数据库存储到用户会话中,假设您将数据库列表放入下拉列表中,用户可以选择他们想要登录的数据库。

Session["DataBase"] = dropdown.SelectedValue

然后尝试将其用于您的connectionstring

public void connect()
{
    string ConnString = string.format("Data Source=APPLE01;DataBase={0};User ID=sa;Password=xxx;", Session["Database"]);
    Connection = new System.Data.SqlClient.SqlConnection(ConnString);
    Connection.Open();
}

答案 1 :(得分:0)

您不会将Application用于特定于用户的设置。应用程序对所有用户都是全局的,而Session特定于特定用户会话。

//user chooses database, let's say they do this on a page
Session["Database"]=GetUserDatabaseSelection();

//now somewhere else, we'll connect to the database specified by their Session.
public void connect()
{
    string ConnString="";
    switch(Session["Database"])
    {
        case "Tienda": ConnString="Data Source=APPLE01;DataBase=Tienda;User ID=sa;Password=Ases0r1a;"; break;
        case "OtherDB": ConnString="Data Source=APPLE01;DataBase=OtherDB;User ID=sa;Password=myotherpass;"; break;
        default: throw new ApplicationException("Unknown database");
    }
    Connection = new System.Data.SqlClient.SqlConnection(ConnString);
    Connection.Open();
}