C#数据库切换,有会的吗

Crazydragcool 2017-06-13 10:36:59
我现在有两个数据库:
数据库 A:里面存用户数据,和数据库B的连接字符串
数据库B:存主页数据
现在我登录,先去A数据库里面验证,存在 返回 B的连接字符串
问题:获得B的连接字符串后我怎么用程序去切换数据库???
可以让我看看怎么写吗;(sql语句加Use的我已经知道了)
...全文
722 43 打赏 收藏 转发到动态 举报
写回复
用AI写文章
43 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 40 楼 qq_38804678 的回复:
[quote=引用 37 楼 xdashewan 的回复:] 简单点这么改

public DBhelp(string constr)
          :this()
         {
             connectionString = constr;
         }

public DBhelp()
         {
             provider = DbProviderFactories.GetFactory(ConfigurationManager.ConnectionStrings["ceshiConnectionString"].ProviderName);
         }
你很棒,我解决了[/quote] 正解
足球中国 2017-06-14
  • 打赏
  • 举报
回复
OpenDataSource 你要的应该是这个 http://blog.csdn.net/hopewell_go/article/details/1228201
Crazydragcool 2017-06-13
  • 打赏
  • 举报
回复
引用 23 楼 xdashewan 的回复:
[quote=引用 22 楼 qq_38804678 的回复:] 不懂,我有webconfig,里面配置的是数据库A的连接字符串,不能在DBhelp里面直接用数据库连接字符串吗
你数据库A和数据库B在用DBhelp(string constr)时候你看看constr有什么不同[/quote] 吃饭去了,下午聊
xdashewan 2017-06-13
  • 打赏
  • 举报
回复
引用 22 楼 qq_38804678 的回复:
不懂,我有webconfig,里面配置的是数据库A的连接字符串,不能在DBhelp里面直接用数据库连接字符串吗
你数据库A和数据库B在用DBhelp(string constr)时候你看看constr有什么不同
Crazydragcool 2017-06-13
  • 打赏
  • 举报
回复
引用 21 楼 xdashewan 的回复:
[quote=引用 20 楼 qq_38804678 的回复:] ”Data Source=PC007\MSSQLSERVER13;Initial Catalog=ce2;User ID=sa;Password=skycount"
那你怎么能用这个再去app里当作key呢[/quote] 不懂,我有webconfig,里面配置的是数据库A的连接字符串,不能在DBhelp里面直接用数据库连接字符串吗
xdashewan 2017-06-13
  • 打赏
  • 举报
回复
引用 20 楼 qq_38804678 的回复:
”Data Source=PC007\MSSQLSERVER13;Initial Catalog=ce2;User ID=sa;Password=skycount"
那你怎么能用这个再去app里当作key呢
Crazydragcool 2017-06-13
  • 打赏
  • 举报
回复
引用 19 楼 xdashewan 的回复:
引用 17 楼 qq_38804678 的回复:
有对象没有实例化,跟代码确定出错位置
你appconfig里有constr对应的key值吗?你constr传进来的是连接字符串还是appconfig的key值?[/quote] 传进来的是字符串: 如下: ”Data Source=PC007\MSSQLSERVER13;Initial Catalog=ce2;User ID=sa;Password=skycount"
xdashewan 2017-06-13
  • 打赏
  • 举报
回复
引用 17 楼 qq_38804678 的回复:
有对象没有实例化,跟代码确定出错位置
[/quote] 你appconfig里有constr对应的key值吗?你constr传进来的是连接字符串还是appconfig的key值?
Crazydragcool 2017-06-13
  • 打赏
  • 举报
回复
引用 16 楼 xdashewan 的回复:
有对象没有实例化,跟代码确定出错位置
还有这一句 DBhelp db = new DBhelp(Mprbdc_DbConStr);
Crazydragcool 2017-06-13
  • 打赏
  • 举报
回复
引用 16 楼 xdashewan 的回复:
有对象没有实例化,跟代码确定出错位置
public DBhelp(string constr) { provider = DbProviderFactories.GetFactory(ConfigurationManager.ConnectionStrings[constr].ProviderName);这一句报错 }
xdashewan 2017-06-13
  • 打赏
  • 举报
回复
有对象没有实例化,跟代码确定出错位置
Crazydragcool 2017-06-13
  • 打赏
  • 举报
回复
引用 12 楼 xdashewan 的回复:
[quote=引用 11 楼 qq_38804678 的回复:] 这样我调用DBhelp的时候把A库返回的字符串放进去,这样可以让我连上B库吗
如果你DBhelp代码没写错的话应该可以,你自己可以试试[/quote] {"Message":"An error has occurred.","ExceptionMessage":"未将对象引用设置到对象的实例。报这个错,我将这个连接字符串传进去就报错
Crazydragcool 2017-06-13
  • 打赏
  • 举报
回复
引用 12 楼 xdashewan 的回复:
[quote=引用 11 楼 qq_38804678 的回复:] 这样我调用DBhelp的时候把A库返回的字符串放进去,这样可以让我连上B库吗
如果你DBhelp代码没写错的话应该可以,你自己可以试试[/quote] 谢谢大神我去试试
Crazydragcool 2017-06-13
  • 打赏
  • 举报
回复
引用 10 楼 xdashewan 的回复:
[quote=引用 9 楼 qq_38804678 的回复:] 我加个 public DBhelp(string constr) { provider = DbProviderFactories.GetFactory(constr); } 可以吗
单从这几句代码,没什么不可以[/quote] 这句我加在DBhelp里面那个DBhelp()的下面
xdashewan 2017-06-13
  • 打赏
  • 举报
回复
引用 11 楼 qq_38804678 的回复:
这样我调用DBhelp的时候把A库返回的字符串放进去,这样可以让我连上B库吗
如果你DBhelp代码没写错的话应该可以,你自己可以试试
Crazydragcool 2017-06-13
  • 打赏
  • 举报
回复
引用 10 楼 xdashewan 的回复:
[quote=引用 9 楼 qq_38804678 的回复:] 我加个 public DBhelp(string constr) { provider = DbProviderFactories.GetFactory(constr); } 可以吗
单从这几句代码,没什么不可以[/quote] 这样我调用DBhelp的时候把A库返回的字符串放进去,这样可以让我连上B库吗
xdashewan 2017-06-13
  • 打赏
  • 举报
回复
引用 9 楼 qq_38804678 的回复:
我加个 public DBhelp(string constr) { provider = DbProviderFactories.GetFactory(constr); } 可以吗
单从这几句代码,没什么不可以
Crazydragcool 2017-06-13
  • 打赏
  • 举报
回复
引用 4 楼 xdashewan 的回复:
[quote=引用 2 楼 qq_38804678 的回复:] 我现在web.config里面只有数据库A的连接,我通过登录获取到B数据库的连接字符串,我现在怎么把使用B的连接字符串连上数据库B
SqlConnection con = new SqlConnection();
con.ConnectionString = 连接字符串
con.Open();
[/quote] 我加个 public DBhelp(string constr) { provider = DbProviderFactories.GetFactory(constr); } 可以吗
Crazydragcool 2017-06-13
  • 打赏
  • 举报
回复
引用 7 楼 xian_wwq 的回复:
public int ExecuteSql(string SQLString) 这个方法只返回了操作相关的rows数量 需要返回dataset,在dataset中读取所需要的信息 类似这样

SqlDataAdapter   da=new   SqlDataAdapter(); 
da.SelectCommand=new   SqlCommand(); 
da.SelectCommand.CommandText=strSql; 
da.SelectCommand.CommandTimeout=60; 
da.SelectCommand.Connection=myConn; 
da.SelectCommand.Transaction=myTrans; 
myDataSet=new   DataSet(); 
da.Fill(myDataSet,TableName); 
不不不,我的意思是让你看我DBhelp里面调用的连接不是字符串,现在我获得了字符串,dbhelp里面要怎么弄,会让我操作的数据库变成连接字符串的那个数据库
xian_wwq 2017-06-13
  • 打赏
  • 举报
回复
public int ExecuteSql(string SQLString) 这个方法只返回了操作相关的rows数量 需要返回dataset,在dataset中读取所需要的信息 类似这样

SqlDataAdapter   da=new   SqlDataAdapter(); 
da.SelectCommand=new   SqlCommand(); 
da.SelectCommand.CommandText=strSql; 
da.SelectCommand.CommandTimeout=60; 
da.SelectCommand.Connection=myConn; 
da.SelectCommand.Transaction=myTrans; 
myDataSet=new   DataSet(); 
da.Fill(myDataSet,TableName); 
加载更多回复(23)

110,533

社区成员

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

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

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