绪论

现在手上有一个项目,是要为陕西联通开发一个内部综合信息平台;整合平台的功能并不复杂,但是本系统牵扯到了系统整合,用户同步和单点登录认证。内部平台需要和门户系统的数据进行同步,以便实现用户单点登录和统一认证。门户的系统用的是IBM的产品架设的,服务器是Linux操作系统, 数据库是DB2 8.2,平台开发语言是Java、JSP。综合信息平台服务器是Microsoft server 2003 操作系统,数据库是Microsoft Sqlserver2000 ,开发语言是C#、asp.net。

工作一:要完成C#(ASP.net)连接到远程

步骤一:安装DB2运行时客户端

Db2数据库一般人不用,了解的人自然很少。C#连接到db2 数据库 需要装客户端吗?刚开始我也不知道是不是需要装客户端,我当然不愿意装它,在试验了好多方法以后我都没有连接成功!因此我开始考虑装客户端,我发现db2有一种叫做运行时的客户端,文件也不大,安装很方便,于是我就在我的服务器上安装了db2的运行时客户端。

步骤二:建立数据源。

在服务器上—》开始—》管理工具—》建立数据源。

点击链接服务器中的表,可以查看表的名字,但是你还不能看见表的结构和内容,想查看表的内容需要用查询分析器来操作,编写sql语句来操作数据库。但好处是你可以在Microsoft sql server 2000 下面完成对db2数据库的操作。这样感觉是不是有点神奇呢,其实道理很简单,一想你就明白了。这也许就是连接服务器存在的意义吧。

下面写一个语句试验一下连接服务器。

结束

下面贴出我写的一个为了完成用户数据同步的存储过程,供大家参考一下,你可以根据你的需要编写你自己的存储过程,也可以将其添加成数据库作业定时调度

create PROCEDURE UpdateDB2Users AS --定义游标变量 Declare myCursor cursor For select [ID],changetype,changetime from OPENQUERY (db2 ,'select * from db2inst1.userinfo') where changetime>(select max(changetime) as locallast from userinfo) open myCursor --定义变量 declare @ID int declare @changetype varchar(50) declare @changetime varchar(50) --循环记录集 Fetch next From myCursor into @ID,@changetype,@changetime While @@FETCH_STATUS =0 begin --处理单条记录 IF (ltrim(rtrim(@changetype))='add' ) BEGIN If EXISTS(select [id] from userinfo where [id]=@ID) begin delete from userinfo where [id]=@ID --SET IDENTITY_INSERT WebData.dbo.USERINFO ON insert into userinfo select * from OPENQUERY (db2 ,'select * from db2inst1.userinfo') where [ID]=@ID end else begin insert into userinfo select * from OPENQUERY (db2 ,'select * from db2inst1.userinfo') where [ID]=@ID --更新到user表 insert into users(USERNAME,mobile,upassword,chinaname,uid,CuCompanyNumber,DepartmentNumber,comefrom,usertype)select rtrim(UID),rtrim(mobile),rtrim(UID),rtrim(cn),rtrim(UID),rtrim(CuCompanyNumber),rtrim(DepartmentNumber),1,7 from userinfo where [ID]=@ID end END ELSE IF(ltrim(rtrim(@changetype))='modify') begin delete from userinfo where [id]=@ID --SET IDENTITY_INSERT WebData.dbo.USERINFO ON insert into userinfo select * from OPENQUERY (db2 ,'select * from db2inst1.userinfo') where [ID]=@ID end Fetch next From myCursor into @ID,@changetype,@changetime end Close myCursor Deallocate myCursor

如果你没有安装运行时客户端或者客户端是找不到IBM DB2 ODBC DRIVER 的。

说明:到这一步 你就可以用ODBC数据源来连接db2数据库了。当让你也可以用db2的命令行来连接数据库。

using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Data.Odbc; using System.Runtime.InteropServices; public partial class DB2Conn : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { Response.Write("hello"); #region 连接测试 //string odbc = "Dsn=DB2;uid=appuser;mode=SHARE;dbalias=TDIDB;pwd=password"; OdbcConnection c = new OdbcConnection(odbc); c.Open(); string sqlx = "select * from db2inst1.userinfo FETCH FIRST 10 ROWS ONLY"; string sqlx1 = "describe table db2inst1.userinfo"; OdbcCommand cmd = new OdbcCommand(sqlx1, c); OdbcDataReader dr = cmd.ExecuteReader(); while (dr.Read()) { Response.Write(dr[0].ToString() + "<br/>"); } dr.Close(); dr.Dispose(); #endregion } }

步骤三:为了开发方便你可以选做步骤三

为DB2数据库添加链接服务。什么是连接服务器。这个你上网搜索一下就知道了,其实都是很简单的东西。我是在Microsoft SqlServer2000 中建立的链接服务。做这一步的前提是你必须完成前面两个步骤。

也可以用C#代码来连接数据库。代码参考如下

.net 连接DB2数据库 ,采用sqlserver 2000的链接服务解决方案总结相关推荐

  1. python连接sql_Python连接DB2数据库

    在工作中遇到了这样的情况,项目中需要连接IBM的关系型数据库(DB2),关于这方面的库比较稀少,其中 ibm_db 是比较好用的一个库,网上也有教程,但是好像不准确,也不太详细,错误百出,没办法只能拿 ...

  2. linux下WMB通过ODBC连接DB2数据库

    之前写过一篇连接oracle数据库的文章,后来发现连接db2数据库在方法上还是有些区别的. 环境信息如下: Red Hat 6.2 x64 DB2 9.7 WMB7 1.安装odbc_cli 安装过程 ...

  3. python3连接db2数据库_Python如何连接DB2数据库?

    今天我们来探讨下Python如何连接DB2数据库.DB2是IBM在美国开发的一组关系数据库管理系统.它的主要操作环境是UNIX(包括IBM自己的AIX),Linux,IBM i(以前称为OS/400) ...

  4. java jdbc连接db2数据库_Java连接db2数据库(常用数据库连接五)

    1.安装好db2数据库,并建立表如下: 2.eclipse或myeclipse中建立工程并导入java连接db2所需要的jar包db2java.jar 下载地址:http://download.csd ...

  5. python连接db2数据库 import的包_python 连接DB2数据库

    pandas 链接DB2数据库 注意事项: 1.就是一定记得要关闭连接. 2.读取数据只能一行一行读取,需要 result = ibm_db.fetch_both(stmt) 代码再调下一行 impo ...

  6. linux系统中使用oracle透明网关连接db2数据库,Linux系统中使用Oracle透明网关连接DB2数据库...

    2. 安装DB2for ODBC and CLI driver a) 在ibm官网上下载,v9.7fp8_aix64_odbc_cli.tar.gz b) 解压这个文件,然后进去解压后的目录,目录结构 ...

  7. linux连接Db2数据库时报58031_db2常用命令

    一.基础篇 1.db2 connect to --连接到本地数据库名 db2 connect to user using --连接到远端数据库 2.db2 force application all ...

  8. win10 安装db2 10.1 并使用DBserver连接db2数据库

    系统:win10 64 专业版 db2下载:链接:https://pan.baidu.com/s/1IiAUdRUTIDcGAew7WbVTHQ  提取码:wzpg dbServer 链接:https ...

  9. sqldbx连接db2数据库

    点击文件–新建连接 弹出如下图–选择IBM DB2 LUW 然后点 选择你自己要链接的服务器,双击即可 输入用户名密码即可连接

最新文章

  1. 当RxJava遇到AOP
  2. Python根据多个空格Split字符串
  3. 用javascript判断当前是安卓平台还是ios平台
  4. git / 通过 ssh 与仓库通信
  5. 异常org.xmlpull.v1.XmlPullParserException
  6. ChineseDiachronicCorpus项目,大规模中文历时语料库
  7. java调试,调试模式不进入内部类解决
  8. echarts柱状图 与轴不重叠_如何让柱状图柱子不挨着坐标轴,就像图片这样
  9. ZooKeeper:分布式应用程序的分布式协调服务
  10. Spring第七弹—依赖注入之注解方式注入及编码解析@Resource原理
  11. 2019ug最新版本是多少_宝塔Linux面板7.4.2版本/Windows面板6.8版本请尽快升级到最新版本...
  12. 人脸方向学习(十七):Face Detection-论文整理-解读
  13. php mysql修改表单数据_表单修改数据
  14. 新浪云SAE共享型数据库MySQL使用经验
  15. Android 仿今日头条、网易新闻的频道管理
  16. 电脑内存条频率怎么查看
  17. 苹果xr十大隐藏功能_苹果iPhone12Pro隐藏功能!简单3步骤“量身高”
  18. 浙江诸暨培训心得总结
  19. 创建一个mysql组
  20. 数据结构之二叉排序树(C++实现)

热门文章

  1. 【前端浏览器】浏览器缓存(http缓存) 浏览器本地存储(总结)
  2. SQL 代码创建数据库
  3. 三问HPE,你真的想买下Nu­t­a­n­ix么?
  4. PRVG-1101 PRVF-4664 PRVF-4657
  5. uni-app base64加密解密
  6. 制冷与空调技术的发展趋势
  7. ehcach文件报错_java - 分布式缓存-Terracotta和Ehcache-客户端错误:无法创建工具包 - 堆栈内存溢出...
  8. 别再自己手动抠图了,教你你用Python5行代码实现批量抠图
  9. 年后跳槽必看!50家互联网公司年终奖情况!(1.30 日最新版)
  10. excel数据透视表参数