连接到不同数据库的c#应用程序复选框

连接到不同数据库的c#应用程序复选框,c#,sql-server,winforms,C#,Sql Server,Winforms,在我的windows窗体应用程序中,我有这样一个场景: ConnectionString = "Data Source=" + ***** + ";Initial Catalog=" + Master + ";Persist Security Info=True;Connect Timeout=0;User ID=" + ConfigurationSettings.AppSettings["username"] + ";Password=" + ConfigurationSettings.App

在我的windows窗体应用程序中,我有这样一个场景:

ConnectionString = "Data Source=" + ***** + ";Initial Catalog=" + Master + ";Persist Security Info=True;Connect Timeout=0;User ID=" + ConfigurationSettings.AppSettings["username"] + ";Password=" + ConfigurationSettings.AppSettings["password"];
我有5个复选框等待用户输入。当用户单击复选框时,我的应用程序应该连接到数据库。单击每个复选框应连接到不同的数据库。为了简单起见,我在app config中提供了我的ip地址和所有详细信息

<add key="SQLServer1" value="mmm.mm.mm.m,abcd" />
<add key="SQLServer2" value="nnn.nn.nn.n,wxyz" />
我应该在我标记的地方得到你们的帮助*。我的意思是,我的应用程序应该能够根据用户单击的内容连接到相关的ip

我说的有可能吗


您也非常感谢任何其他选择。

您如何连接到数据库? 通过
实体框架
,或
dbcontext
,或自定义
SQLConnection

您可以做的一件事是,只要用户选中一个复选框,就可以从
web.config
as获取连接字符串和服务器Ip的值

ConnectionStringSettings conSettings = ConfigurationManager.ConnectionStrings[VARIABLENAME];
以及应用程序设置


替换**by app设置值并将connectionstring传递给数据库连接类。

您如何连接到数据库? 通过
实体框架
,或
dbcontext
,或自定义
SQLConnection

您可以做的一件事是,只要用户选中一个复选框,就可以从
web.config
as获取连接字符串和服务器Ip的值

ConnectionStringSettings conSettings = ConfigurationManager.ConnectionStrings[VARIABLENAME];
以及应用程序设置


替换**by app设置值并将connectionstring传递给数据库连接类。

您可以使用如下所示的格式化变量:

string connectionString = String.Format("Data Source={0};Initial Catalog=" + Master + ";Persist Security Info=True;Connect Timeout=0;User ID=" + ConfigurationSettings.AppSettings["username"] + ";Password=" + ConfigurationSettings.AppSettings["password"], <get value from checkbox>);
string connectionString=string.Format(“数据源={0};初始目录=“+Master+”;持久安全信息=True;连接超时=0;用户ID=“+ConfigurationSettings.AppSettings[“用户名”]+”;密码=“+ConfigurationSettings.AppSettings[“密码”],);

您可以使用如下所示的格式化变量:

string connectionString = String.Format("Data Source={0};Initial Catalog=" + Master + ";Persist Security Info=True;Connect Timeout=0;User ID=" + ConfigurationSettings.AppSettings["username"] + ";Password=" + ConfigurationSettings.AppSettings["password"], <get value from checkbox>);
string connectionString=string.Format(“数据源={0};初始目录=“+Master+”;持久安全信息=True;连接超时=0;用户ID=“+ConfigurationSettings.AppSettings[“用户名”]+”;密码=“+ConfigurationSettings.AppSettings[“密码”],);

每个复选框都有一个checkBox.Checked参数,因此您可以创建一个函数,在选中复选框时插入正确的IP地址:

if(复选框1.选中)
{
字符串数据源=某个IP地址;
}

然后对您拥有的每对复选框/IP地址重复此代码


p.S由于您可能希望在一瞬间只连接到一个数据库,因此应使用单选按钮而不是复选框

每个复选框都有一个复选框。选中的参数,因此您可以创建一个函数,在选中复选框时插入正确的IP地址:

if(复选框1.选中)
{
字符串数据源=某个IP地址;
}

然后对您拥有的每对复选框/IP地址重复此代码


由于您可能希望在一瞬间只连接到一个数据库,因此您应该使用单选按钮而不是复选框

我不知道为什么要使用
复选框
。如果您只需要连接到一个DB,则应使用
RadioBox
。如果需要多个DB,可以注册复选框选中事件:

     this.checkBox1.CheckedChanged += new System.EventHandler(this.checkBox1_CheckedChanged);
并且做:

  private void checkBox1_CheckedChanged(object sender, EventArgs e)
  {
     if (checkBox1.Checked)
     {
        string currStr = ConnectionString.Replace("*****", currIP);// the currIP is up to u  
     }
     else
     {

     }

  }
现在你可以把它们都列在一个列表中

List<string> connStrings = new List<string>();
现在,您已经将它们都列在了一个列表中,您可以将其与
foreach

foreach(string curr in connStrings)
{
}

我确实提醒您必须将每个
复选框注册到其自己的事件方法

我不知道您为什么要使用
复选框
。如果您只需要连接到一个DB,则应使用
RadioBox
。如果需要多个DB,可以注册复选框选中事件:

     this.checkBox1.CheckedChanged += new System.EventHandler(this.checkBox1_CheckedChanged);
并且做:

  private void checkBox1_CheckedChanged(object sender, EventArgs e)
  {
     if (checkBox1.Checked)
     {
        string currStr = ConnectionString.Replace("*****", currIP);// the currIP is up to u  
     }
     else
     {

     }

  }
现在你可以把它们都列在一个列表中

List<string> connStrings = new List<string>();
现在,您已经将它们都列在了一个列表中,您可以将其与
foreach

foreach(string curr in connStrings)
{
}

我提醒您必须将每个
复选框注册到其自己的事件方法

我有一个场景,在一个应用程序中必须使用5个不同的数据库

所做的是,我有一个类DBUtility,它提供了所有与数据库相关的功能。在这个类中,我有一个名为init()的方法来初始化我的连接字符串

因此,我创建了其他4个类,它们继承自主类DBUtility,并将init()方法重写为不同的连接字符串

您还可以创建类似的结构,然后根据复选框选择创建所需类的对象

e、 g

在哪里


我有一个场景,我必须在一个应用程序中使用5个不同的数据库

所做的是,我有一个类DBUtility,它提供了所有与数据库相关的功能。在这个类中,我有一个名为init()的方法来初始化我的连接字符串

因此,我创建了其他4个类,它们继承自主类DBUtility,并将init()方法重写为不同的连接字符串

您还可以创建类似的结构,然后根据复选框选择创建所需类的对象

e、 g

在哪里


您可以声明一个变量并使用if语句,然后根据您的复选框更改变量(从config读取并分配给variable)…@Sam:但正如我所说,如果我有5个复选框,那么我应该有5个if条件..对吗?是的,对,或者使用switch语句是。您必须具备这样做的条件我不确定这是否对您有很大帮助,但我猜您可以简单地使用复选框的
标记
属性。在VisualDesigner中的
标记中写入键“SQLServer?”,并在您想到的任何
复选框中写入该键,只需执行如下操作:
ConnectionString=“Data Source=“+ConfigurationManager.AppSettings[(发送方作为控件).Tag.ToString()”+“初始目录=”+Master+..…
您可以声明一个变量并在必要时使用