我公司做医疗行业的,突然有一天接到需求需要对接Cache数据库。
在这之前听都没听说过Cache。网上查了半天资料,百度能查到的很少。
Caché数据库是美国Intersystems公司产品,后关系型数据库(Post Relational database)中的领头羊。Caché数据库对大多数国内IT人员来说还是比较陌生,然而在国外特别是国外的医疗领域,在美国和欧洲的HIS系统(医疗卫生管理信息系统)中,CACHE数据库所占的比例是最大的,被医疗界公认为首选数据库。
说国外医院用的比较多,国内很少有人用吧。用来吹吹牛逼我感觉挺好的,哈哈哈!
本文只介绍连接此数据库的方式,
连接数据库肯定是需要连接字符串的:“SERVER=127.0.0.1;PORT=1972;DATABASE=%SYS;UID=_system;PWD=seehealth;”
端口一般都是默认的
方式1:
通过“InterSystems.Data.IRISClient.dll”类库直接调用里面的方法即可,这个比较简单,直接引用dll就好。
直接看代码吧
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
string ip = "127.0.0.1";
string port = "1972";
string Namespace = "%SYS";
string username = "_system";
string password = "seehealth";
IRISADOConnection connect = new IRISADOConnection();
// Create connection string
connect.ConnectionString = "Server = " + ip + "; Port = " + port + "; Namespace = " + Namespace + "; Password = " + password + "; User ID = " + username;
connect.Open();
Console.WriteLine("Connected to InterSystems IRIS.");
Console.ReadKey();
}
方式2:
通过ODBC连接
此方法麻烦在需要配置数据源(ODBC)
打开控制面板-管理工具-数据源(ODBC),如图选择“InterSystems ODBC”进行配置
InterSystems ODBC 这个选项需要安装驱动,没有安装过Cache驱动的人需要安装驱动,驱动下载地址:
https://download.csdn.net/download/SJB2MLN/12292363
配置完成点击Test Connection 连接成功后,开始写代码调用吧
Console.WriteLine("Hello World!");
//ODBC连接
string conString = "Dsn=demo;"; //tian表示ODBC的用户数据源名
string sql = "SELECT ID, Description, EndTimeStamp, RootComponent, StartTimeStamp FROM Inventory.Scan WHERE EndTimeStamp> '2020-03-30'"; //stuinfo为用户数据源绑定的数据库中的一个表
try
{
using (OdbcConnection con = new OdbcConnection(conString))
{
using (OdbcCommand cmd = new OdbcCommand(sql, con))
{
using (OdbcDataAdapter da = new OdbcDataAdapter(cmd))
{
DataTable dt = new DataTable();
con.Open();
da.Fill(dt);
Console.WriteLine("总数:" + dt.Rows.Count);
}
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.ReadKey();
驱动下载地址:https://download.csdn.net/download/SJB2MLN/12292363
代码demo下载地址:https://download.csdn.net/download/SJB2MLN/12292394
demo中还有第3种连接方式