C# 与sybase 数据库的连接

来源:互联网 发布:惠天听书传销 知乎 编辑:程序博客网 时间:2024/05/22 12:19

C# 与sybase 数据库的连接

前言

Ado.net附带了4个数据库客户命名空间,一个用于SQL Server,另一个用于Oracle,第三个用于ODBC数据源,第四个用于通过OLEBC实现数据库。如果数据库不是SQL Server或Oracle,就应该使用OLE DB,除非还能使用ODBC。

注:以上引自《c#高级编程》第三版清华大学出版社[ISBN 7-302-10199-X/TP ﹒6975 2005年12月第2次印刷]

由上可知,目前C#与sybase数据库的连接有2种方式

l       通过OLEBC

l       通过ODBC

通过OLEBC实现:

需要一个sybase OLEDB 驱动程序(这个可以去网上下载)。具体实现如下:

第一种方法:

1、         首先要在工程里面引用:using System.Data.OleDb;

2、         定义一个连接串:

ConnStr= "Provider=Sybase.ASEOLEDBProvider;Server Name="150.1.1.10,8888";Initial Catalog=ismiswebdb;User Id=ismiswebdb;Password=ismiswebdba";

注:

(1)       Server Name:指的是服务器的ip地址和端口号,中间用“,”隔开。

(2)       Initial Catalog:是数据库服务器的名称

(3)       User Id:是数据库的登录名。

(4)       Password:是数据库的密码

3、         定义一个OleDbCommand变量:thisCommand

4、         定义一个OleDbDataReader变量:thisReader

5、         在需要跟数据连接的函数里面如下写即可:

try

{

    OleDbCommand thisCommand = thisConnection.CreateCommand();

 

    thisCommand.CommandText = "select id,investtype,deptcode,loginname,password,realname,tel,note,rules  from    is_user where loginname = '" + loginName + "' and password = '" + passWord + "' and rules < 3";

          

    OleDbDataReader thisReader = thisCommand.ExecuteReader();

 

    //循环,生成链表结构

    while (thisReader.Read())

    {

        cGetUserInfo.ID          =   thisReader[0].ToString();

        cGetUserInfo.InvestType   =   thisReader[1].ToString();

        cGetUserInfo.DeptCode    =   thisReader[2].ToString();

        cGetUserInfo.LoginName  =   thisReader[3].ToString();

        cGetUserInfo.PassWord    =   thisReader[4].ToString();

        cGetUserInfo.RealName   =   thisReader[5].ToString();

        cGetUserInfo.Tel         =   thisReader[6].ToString();

        cGetUserInfo.Note       =   thisReader[7].ToString();

        cGetUserInfo.Rules      =   thisReader[8].ToString();

        userInfoArray.Add(cGetUserInfo);

    }

    thisReader.Close();

}

catch

{

}

    ^_^,是不是很简单。

第二种方法:

1、     打开下载的sybase OLEDB 驱动程序里面的syboledb.reg文件,是其路径与所安装的路径一致(用鼠标右键点击syboledb.reg文件,选择编辑,可查看其路径)。

注:当然也可以不修改默认值,按其显示的路径,把下载的驱动(文件夹Sybase OLEDB)直接放在C:盘根目录下即可。然后用鼠标左键双击syboledb.reg文件,进行注册。

1、             打开Sybase OLEDB文件夹下的sydaadm.exe文件,选择[File]->[New]->[Data Source]

2、             输入Data Source Name(自己定义)。

3、             点击【Set Up Data Source】按钮,输入服务器IP地址和端口号。

为了以防万一,可点击【Test Connect】按钮进行连接测试。(当然,测试时还要输入用户名、口令)

到此,你的OLEDB已经设置完成,用户可以使用C#与sybase进行连接了。

在程序中具体实现的代码如下:

String SelectCmd = “select * from table”;

String connStr=”Provider=Sybase.ASEOLEDBProvider.2;”

+ “Data Source=web_pptc;Password=webpptcdba;User ID=webpptc”;

dataAdapter = new OleDbDataAdapter(SelectCmd, connStr);

……

……

更方便的方法为:你的Server Name(服务器IP地址)和端口好可以在connStri里制定,具体请到网上搜索吧^_^.

通过ODBC

1.在服务器上安装Sybase客户端,配置Dsedit,如下图:

2.配置ODBC的系统DSN,如下图:

注意:Data Source Name名字自己随便起,但Server  Name 一定要与步骤1所起的Server Name一致。

至此,ODBC的配置已结束,其在程序种的代码实现如下:

string strODBCConn = "Driver={SYBASE SYSTEM 11};Srvr=test;Uid=webpptc;Pwd=webpptcdba;DB=web_pptc"; // web_pptc是数据库名称

OdbcConnection oLogConn;

OdbcCommand oLogCmd;

string strSql = "select dwjm_c,ky_c from jh001";

oLogConn = new OdbcConnection(strODBCConn);

oLogCmd = new OdbcCommand(strSql, oLogConn);

oLogConn.Open();

myLogDataReader = oLogCmd.ExecuteReader(CommandBehavior.CloseConnection);

while (myLogDataReader.Read())

{

……

在此,可通过while循环来获得所查询的字段值:

例如:String strGetValue = myLogDataReader[0].ToString();

}

 

0 0