C#同时连接两个数据库

C#同时连接两个数据库,第1张

简单的思路代码如下:

private static int defaultPos = 0;//连接获取控制

private static List<string> connList = null;//连接列表

private static object obj_lock = new object();//连接锁

/// <summary>

/// 获取所有的连接的地址

/// </summary>

/// <returns></returns>

private static List<string> GetMultiWriteConnection()

{

if (connList== null)

{

connList = new List<string>();

for (int i = 1; i < 100; i++)

{

if (!StringIsNullOrEmpty(ConfigurationManagerAppSettings["ConnectionString" + i]))

{

connListAdd(ConfigurationManagerAppSettings["ConnectionString" + i]);

}

}

}

return connList;

}

/// <summary>

/// 获取单个连接地址

/// </summary>

/// <returns></returns>

private static string GetSingleWriteConnection(int writePos)

{

lock (obj_lock)

{

string result = GetMultiWriteConnection()[writePos];

return result;

}

}

/// <summary>

/// 获取单个连接地址

/// </summary>

/// <returns></returns>

private static string GetSingleWriteConnection()

{

lock (obj_lock)

{

string result = GetMultiWriteConnection()[defaultPos];

return result;

}

}

用db_links可以解决此类问题:

drop database link ss

create database link woody_DB_LINK

connect to woodydb(数据库实例名称)

identified by woody123(密码)

using 'woodywoodycadcom'(连接字符)

然后在oracle安装目录下:D:\oracle\network\ADMIN

tnsnamesora文件里面根据链接情况加上链接

woodywoodyCADCOM =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 19216810024)(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME = woodycom)

)

)

thinkphp 同时连接两个数据库的配置方法如下:

1、在Dbclassphp脚本文件里面的类增加一个魔术方法__get(),写法如下:

public function __get($propertyName)

{ return $this->$propertyName;

}

这个方法是用来访问类中protected $config成员属性用的。有的人可能会说,直接把protected改成public岂不是更好。这样只解决了基类的问题,假如,子类也同样进行了受保护,那要你更改更多的文件,这是我们做IT程序员非常不愿意看到的事情。

2、在Modelclassphp中的getTableName()方法更改如下:

$tablepre = $this->db->config['tablepre'];

if(empty($this->trueTableName)) {

$tableName= empty($tablepre)  $this->tablePrefix : $tablepre;

if(!empty($this->tableName)) {

$tableName = $this->tableName;

}

else

{

$tableName = parse_name($this->name);

}

$this->trueTableName  = strtolower($tableName);

}

return (!empty($this->dbName)$this->dbName'':'')$this->

trueTableName;这样就完成了多库自由切换时,导致的表前缀问题。

/面向对象PDO连接方式/

'DB_TYPE' => 'PDO', // 数据库类型

'DB_DSN' => 'mysql:host=localhost;dbname=master', // DSN连接。

'DB_USER' => 'root', // 数据库用户名

'DB_PWD' => '123456', // 数据库密码

'DB_PORT' => '3306', // 数据库端口

'DB_PREFIX' => 'g_', // 数据表前缀

'DB_CHARSET' => 'utf8', // 数据库编码默认采用utf8

以上就是关于C#同时连接两个数据库全部的内容,包括:C#同时连接两个数据库、两个数据库之间如何进行连接、怎么样配置thinkphp 与本地mysql和sql server同时连接俩个数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10082184.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存