您的位置:首页 > 数据库

C# 与sybase 数据库的连接

2006-09-06 14:40 337 查看
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();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: