同一台服务器中有多个数据库,客户端登陆需要连接不同数据库如何配置

yjjtwo 2015-06-19 09:26:13
我有一个程序,但是数据库是分开不同的,就比如有 1 ,2,3 这个三个数据库,登陆的时候让用户选择连接哪个数据库,本来想的挺简单的,可以在App.config中设个条件就行了, 然后写了个继承App.config 文件里面就是查询,修改,删除这些代码,结果去实践了下,这个文件里不能写if 之类的判断语句,继承文件里也不能写判断,那么该如何在程序中配置不同的数据库连接呢 我用的是vs2010 wpf 开发
...全文
802 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
smthgdin_020 2015-06-19
  • 打赏
  • 举报
回复
怎么会想到在app.config里写程序控制?而且还能继承app.config! 配置文件默认有个节ConnectionStrings,在里面配置3个数据库连接就行了,界面显示3个库的选择,用户学什么就用那个连接去连接数据。
全栈极简 2015-06-19
  • 打赏
  • 举报
回复
在web.config或者app.config下面配置多个connectstring数据库连接字符串节点就行了。判断的话在代码里面进行判断即可。
Justin-Liu 2015-06-19
  • 打赏
  • 举报
回复
没明白什么意思 你不是登录的时候让用户选择么
  • 打赏
  • 举报
回复
遍历出connectionStrings配置节下面的连接配置,然后提取出name供用户选择,用户选择了哪个name后,就设置这个static name
於黾 2015-06-19
  • 打赏
  • 举报
回复
为啥要在配置文件里写if代码??? 配置文件不过是个xml,用来存放数据的,你不用配置文件,而用txt,数据库,excel,总之是你能读取的文件,其实都可以 只不过配置文件已经由.net类库实现了自动读取,你调用的时候更简单罢了 记得,里面只有数据,不要写代码! SqlHelper里,你需要这样改: public static readonly string connstr = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString; public static readonly string connstr1 = ConfigurationManager.ConnectionStrings["connstr1"].ConnectionString; public static readonly string connstr2 = ConfigurationManager.ConnectionStrings["connstr2"].ConnectionString; 你好歹有3个变量来保存这3个连接字符串啊 然后在函数里增加个参数,判断参数如果是0,就用connstr ,如果是1,就用connstr1,如果是2,就用connstr2 不要把if语句写到函数外面!
yjjtwo 2015-06-19
  • 打赏
  • 举报
回复
引用 4 楼 smthgdin 的回复:
怎么会想到在app.config里写程序控制?而且还能继承app.config! 配置文件默认有个节ConnectionStrings,在里面配置3个数据库连接就行了,界面显示3个库的选择,用户学什么就用那个连接去连接数据。
可以直接在界面显示配置文件吗?请告诉我方法吧~
yjjtwo 2015-06-19
  • 打赏
  • 举报
回复
引用 4 楼 smthgdin 的回复:
怎么会想到在app.config里写程序控制?而且还能继承app.config! 配置文件默认有个节ConnectionStrings,在里面配置3个数据库连接就行了,界面显示3个库的选择,用户学什么就用那个连接去连接数据。
<?xml version="1.0"?>
<configuration>
  <configSections>
  </configSections>
  <connectionStrings>    
    
    <add name="connstr" connectionString="Data Source=192.168.3.88; Initial Catalog=HRMSYSDB;User ID=sa;Password=123456" />
    <add name="connstr1" connectionString="Data Source=192.168.3.88; Initial Catalog=HRMSYSDB1;User ID=sa;Password=123456" />
    <add name="connstr2" connectionString="Data Source=192.168.3.88; Initial Catalog=HRMSYSDB2;User ID=sa;Password=123456" />
  </connectionStrings>
  <appSettings>
    <add key="passwordSalt" value="love?P3@9"/>
    <add key="aaa" value="333"/>
  </appSettings>
<startup useLegacyV2RuntimeActivationPolicy="true"><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
这个是App.config 文件代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
using System.Data.SqlClient;
using System.Data;

namespace HRMSys.DAL
{
    static class SqlHelper
    {
        //app.config文件的继承:


        public static readonly string connstr = 
            ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;

       

        public static int ExecuteNonQuery(string sql, 
            params SqlParameter[] parameters)
        {
            using (SqlConnection conn = new SqlConnection(connstr))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = sql;
                    cmd.Parameters.AddRange(parameters);
                    return cmd.ExecuteNonQuery();
                }
            }
        }

        public static object ExecuteScalar(string sql,
            params SqlParameter[] parameters)
        {
            using (SqlConnection conn = new SqlConnection(connstr))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = sql;
                    cmd.Parameters.AddRange(parameters);
                    return cmd.ExecuteScalar();
                }
            }
        }

        public static DataTable ExecuteDataTable(string sql,
            params SqlParameter[] parameters)
        {
            using (SqlConnection conn = new SqlConnection(connstr))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = sql;
                    cmd.Parameters.AddRange(parameters);

                    DataSet dataset = new DataSet();
                    SqlDataAdapter adapter = new SqlDataAdapter(cmd);
                    adapter.Fill(dataset);
                    return dataset.Tables[0];
                }
            }

           
        
    }
这个事SqlHelper.cs 也是就是做了个数据增删改查的封装, 我就是不懂界面用户选择,这两个文件里写不进if判断语句

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧