可以切换数据库的SqlHelper
来源:互联网 发布:知乎如何看我的收藏 编辑:程序博客网 时间:2024/06/04 19:03
完整代码:/Files/greatverve/MyFiles.rar
一个项目我一般只用一个数据库,现在有需求,需要使用多个数据库,临时改了一下,不知道好不好,
请高手指教,大家使用多数据库的时候是如何切换的。
DBHelper.cs
private static string connectionString = "SQLCONNECTIONSTRING";
/// <summary>
/// 切换数据库
/// </summary>
/// <param name="connStr"></param>
public static void SetSqlConnection(string connStr)
{
connectionString = connStr;
}
/// <summary>
/// 返回数据库连接字符串
/// </summary>
/// <returns></returns>
public static String GetSqlConnection()
{
String conn = ConfigurationManager.AppSettings[connectionString].ToString();
return conn;
}
/// <summary>
/// 执行SQL语句
/// </summary>
/// <param name="Sqlstr">SQL语句</param>
/// <param name="param">参数对象数组</param>
/// <returns></returns>
public static int ExecuteSql(String Sqlstr, SqlParameter[] param)
{
String ConnStr = GetSqlConnection();
using (SqlConnection conn = new SqlConnection(ConnStr))
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = Sqlstr;
cmd.Parameters.AddRange(param);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
return 1;
}
}
/// <summary>
/// 切换数据库
/// </summary>
/// <param name="connStr"></param>
public static void SetSqlConnection(string connStr)
{
connectionString = connStr;
}
/// <summary>
/// 返回数据库连接字符串
/// </summary>
/// <returns></returns>
public static String GetSqlConnection()
{
String conn = ConfigurationManager.AppSettings[connectionString].ToString();
return conn;
}
/// <summary>
/// 执行SQL语句
/// </summary>
/// <param name="Sqlstr">SQL语句</param>
/// <param name="param">参数对象数组</param>
/// <returns></returns>
public static int ExecuteSql(String Sqlstr, SqlParameter[] param)
{
String ConnStr = GetSqlConnection();
using (SqlConnection conn = new SqlConnection(ConnStr))
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = Sqlstr;
cmd.Parameters.AddRange(param);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
return 1;
}
}
Test.cs(BLL)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Data;
using System.Configuration;
using System.Web;
using HY.Common;
using System.Text;
using System.Data.SqlClient;
namespace HY.BLL
{
public class Test
{
/// <summary>
/// 在静态类的静态构造函数里,切换默认数据库
/// </summary>
static Test()
{
DBHelper.SetSqlConnection("SQLCONNECTIONSTRING");
}
/// <summary>
/// 不需要切换数据库的,直接写
/// </summary>
/// <returns></returns>
public static DataTable getAll()
{
StringBuilder sb = new StringBuilder();
sb.Append("select * from t_Users");
return DBHelper.ExecuteDt(sb.ToString());
}
/// <summary>
/// 需要切换的话,函数中切换
/// </summary>
/// <returns></returns>
public static DataTable getTable()
{
DBHelper.SetSqlConnection("SQLCONNECTIONSTRING1");//BLL中这样切换
StringBuilder sb = new StringBuilder();
sb.Append("select * from t_User");
return DBHelper.ExecuteDt(sb.ToString());
}
}
}
using System.Collections.Generic;
using System.Linq;
using System.Data;
using System.Configuration;
using System.Web;
using HY.Common;
using System.Text;
using System.Data.SqlClient;
namespace HY.BLL
{
public class Test
{
/// <summary>
/// 在静态类的静态构造函数里,切换默认数据库
/// </summary>
static Test()
{
DBHelper.SetSqlConnection("SQLCONNECTIONSTRING");
}
/// <summary>
/// 不需要切换数据库的,直接写
/// </summary>
/// <returns></returns>
public static DataTable getAll()
{
StringBuilder sb = new StringBuilder();
sb.Append("select * from t_Users");
return DBHelper.ExecuteDt(sb.ToString());
}
/// <summary>
/// 需要切换的话,函数中切换
/// </summary>
/// <returns></returns>
public static DataTable getTable()
{
DBHelper.SetSqlConnection("SQLCONNECTIONSTRING1");//BLL中这样切换
StringBuilder sb = new StringBuilder();
sb.Append("select * from t_User");
return DBHelper.ExecuteDt(sb.ToString());
}
}
}
web.config
<appSettings>
<add key="SQLCONNECTIONSTRING" value="data source=(local);uid=sa;pwd=sa;database=db#test"/>
<add key="SQLCONNECTIONSTRING1" value="data source=(local);uid=sa;pwd=sa;database=hyoa_SysInfo"/>
</appSettings>
<add key="SQLCONNECTIONSTRING" value="data source=(local);uid=sa;pwd=sa;database=db#test"/>
<add key="SQLCONNECTIONSTRING1" value="data source=(local);uid=sa;pwd=sa;database=hyoa_SysInfo"/>
</appSettings>
SqlTest.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
Bind();
}
private void Bind()
{
//切换数据库的操作封装在BLL中
GridView1.DataSource = Test.getAll();
GridView1.DataBind();
//切换数据库
GridView2.DataSource = Test.getTable();
GridView2.DataBind();
}
{
if (!IsPostBack)
Bind();
}
private void Bind()
{
//切换数据库的操作封装在BLL中
GridView1.DataSource = Test.getAll();
GridView1.DataBind();
//切换数据库
GridView2.DataSource = Test.getTable();
GridView2.DataBind();
}
转载自:http://www.cnblogs.com/greatverve/archive/2009/11/10/1599571.html
凡事以大气象去面对,优秀是一种习惯。
- 可以切换数据库的SqlHelper
- 连接数据库的抽象SQLHelper
- 自己写的SqlHelper数据库助手类
- C# SqlHelper数据库的通用访问代码
- Java访问MySQL数据库的SqlHelper类
- 封装几个操作数据库的方法SqlHelper
- SQLHelper层对数据库的访问代码
- 一个简单的可以实现分页的SqlHelper类
- MySQL数据库SqlHelper类
- SqlHelper数据库操作类
- 数据库操作类SQLHelper
- sqlHelper数据库类
- SqlHelper 数据库操作工具
- 数据库抽象之sqlhelper
- SqlHelper数据库访问类
- SqlHelper类执行数据库
- 利用SqlHelper.cs实现Web程序与数据库的连接
- 利用SqlHelper.cs实现Web程序与数据库的连接
- C# 调用C++DLL参数异常解决方法
- 鸟哥的Linux私房菜基础学习篇(第三版)之第十二章:正则表示法与文件格式化处理
- 架构必备刃器UML1—PowerDesigner的使用之基础篇
- 802.11概述及帧结构分析
- php 单例模式
- 可以切换数据库的SqlHelper
- Java模板引擎FreeMarker介绍和使用
- php 获取参数的信息
- 设计模式的六大原则
- android中Preference的使用
- php PHPExcel应用
- PHP非线程安全与线程安全版本的选择技巧
- XMLHelper类 源码(XML文档帮助类,静态方法,实现对XML文档的创建,及节点和属性的增、删、改、查)
- libgdx环境