C#通过配置数据源连接Oracle数据库

本文摘自http://jishudaima.iteye.com/blog/955166

 

1.首先装好你的Oracle 9i。然后再控制面板->管理工具->数据源(odbc)

2.双击数据源(odbc)->选择系统DSN->添加->Microsoft ODBC for Oracle , 数据源名称:chicoDB (这个是用来在C#中写连接字符串用的), 服务器名称:chicoDB (这个是你安装Oracle的时候建立的sid名称即数据库名)。然后确定

3.打开你的pl/sql 建立几个表(新建->表)..我使用的system帐号登陆权限为SYSDBA,数据库为chicoDB.(不过使用PL/SQL好像不用用户名密码也可以登陆)比如我建立的是client 表。我的所有者为system.在列中输入:CLIENTID (nvarchar(11)),ID(nvarchar(11)),NAME(nvarchar(50)),SEX(char(1)),TEL(nvarchar(11)),INCOME(NUMBERIC),JOB(nvarchar(50))。

4.建立一个c#工程项目,连接字符串这样写:const string connstr = "DSN=chicoDB;UID=System;Pwd=zaqwsx;";

前面要using System.Data.Odbc; 想建立连接的话就写:OdbcConnection cn = new OdbcConnection(connstr);

C-sharp代码 复制代码
  1. const string connstr = "DSN=chicoDB;UID=System;Pwd=zaqwsx;";   
  2. OdbcConnection cn= new OdbcConnection(connstr);   
  3. cn.Open();   
  4. // 这里的基本上都是string类型,出了income是double   
  5. String sqlInsert = "insert into System.client values('" + clientId + "','" + id + "','" + name + "',to_char('" + sex + "'),'" + tel + "'," + income + ",'" + job + "')";   
  6. OdbcCommand oc = new OdbcCommand(slqInsert, cn);   
  7. oc.CommandType = System.Data.CommandType.Text;   
  8. int rows =oc.ExecuteNonQuery();   
  9. System.Console.WriteLine(rows);// 打印被影响的行数   
  10. String sql = "select * from system.client";   
  11. oc.CommandText = sql;   
  12. OdbcDataReader dbreader= oc.ExecuteReader();   
  13. //这个Reader好像不能脱机操作..(具体没有查)   
  14. object[] o = null;   
  15. if (dbreader.HasRows)   
  16. {   
  17.     o = new object[dbreader.FieldCount];   
  18.     dbreader.GetValues(o);   
  19. }   
  20. // 这里你自己写个打印语句将查询出来的记录打印出来吧..   
  21. dbreader.Close();   
  22. oc.Dispose();   
  23. cn.Close();  

操作完毕..

这里要注意的一点,如果你在sql语句末尾加入了';',那么Oracle就会报错。另外我本来想用OdbcParament来写.后来屡次失败。不知道愿意。有写出来的且能运行的.帮忙贴在我的评论里。

posted on 2011-09-08 11:33  lonionDBA  阅读(1043)  评论(0)    收藏  举报

导航