VS2010连接Oracle11g数据库
来源:互联网 发布:网络聊天 编辑:程序博客网 时间:2024/04/30 05:11
一、使用Oracle.DataAccess.dll
在数据库ODT.Net的bin\2.x目录下找到Oracle.DataAccess.dll,添加引用到当前项目。
添加OracleDataAccess命名空间
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using OracleDataAccess;在单击按钮事件下,添加连接数据库代码
(2)
private void button1_Click(object sender, EventArgs e) { string oradb = "Data Source=Orcl;User ID=hr;Password=hr;"; OracleConnection conn = new OracleConnection(oradb); // OracleConnection conn = new OracleConnection(); // C# // conn.ConnectionString = oradb; conn.Open(); string sql = " select department_name from departments where department_id = 10"; // C# OracleCommand cmd = new OracleCommand(sql, conn); cmd.CommandType = CommandType.Text; OracleDataReader dr = cmd.ExecuteReader(); // C# dr.Read(); label1.Text = dr["department_name"].ToString(); // C# retrieve by column name label1.Text = dr.GetString(0).ToString(); // return a .NET data type label1.Text = dr.GetOracleString(0).ToString(); // return an Oracle data type label1.Text = dr.GetInt16("department_id").ToString(); /* { conn.Open(); OracleCommand cmd = new OracleCommand(); cmd.Connection = conn; cmd.CommandText = "select department_name from departments where department_id = 10"; cmd.CommandType = CommandType.Text; OracleDataReader dr = cmd.ExecuteReader(); dr.Read(); label1.Text = dr.GetString(0);} */ /* try{ conn.Open(); OracleCommand cmd = new OracleCommand(); cmd.Connection = conn; cmd.CommandText = "select department_name from departments where department_id = " + textBox1.Text; cmd.CommandType = CommandType.Text; if (dr.Read()) // C# { label1.Text = dr["department_name"].ToString(); // or use dr.GetOracleString(0).ToString() }}catch (Exception ex) // catches any error{ MessageBox.Show(ex.Message.ToString());}finally{ // In a real application, put cleanup code here.} */ }单击按钮,返回如下界面
-------------------------------------------------------------------------------------------------------------------------
二、System.Data.OracleClient
Oracle开发工具:VS2010
数据库:oracl 11g
在连接oracle数据时,我们需要做以下的工作:
1、添加 oracleclient 引用和Configuration引用
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Data.OracleClient;
using System.Configuration;
2、配置app.config
<?xml version="1.0"?><configuration> <connectionStrings> <add name="Orcl" connectionString="Data Source=Orcl;User ID=hr;Password=hr;"/> </connectionStrings><startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
3、编写数据库操作代码:
private void button1_Click(object sender, EventArgs e) { string oradb = ConfigurationManager.ConnectionStrings["Orcl"].ToString(); OracleConnection conn = new OracleConnection(oradb); conn.Open(); string sql = " select department_name from departments where department_id = 10"; // C# OracleCommand cmd = new OracleCommand(sql, conn); cmd.CommandType = CommandType.Text; OracleDataReader dr = cmd.ExecuteReader(); // C# dr.Read(); label1.Text = dr["department_name"].ToString(); // C# retrieve by column name label1.Text = dr.GetString(0).ToString(); // return a .NET data type label1.Text = dr.GetOracleString(0).ToString(); // return an Oracle data type }
与第一种方法返回相同结果。
修改数据库
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Data.OracleClient;using System.Configuration;namespace OracleAccess{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { string oradb = ConfigurationManager.ConnectionStrings["Orcl"].ToString(); OracleConnection conn = new OracleConnection(oradb); try { conn.Open(); string sql = " select department_name from departments where department_id = 10"; // C# OracleCommand cmd = new OracleCommand(sql, conn); cmd.CommandType = CommandType.Text; OracleDataReader dr = cmd.ExecuteReader(); // C# while(dr.Read()) { label1.Text = dr["department_name"].ToString(); // C# retrieve by column name label1.Text = dr.GetString(0).ToString(); // return a .NET data type label1.Text = dr.GetOracleString(0).ToString(); // return an Oracle data type } dr.Close();//关闭reader.这是一定要写的 } catch { MessageBox.Show("erro");//如果发生异常,则提示出错 } finally { conn.Close();//关闭打开的连接 } } private void button2_Click(object sender, EventArgs e) { #region 从region到endregion是手工写的。别的都是系统自动生成的 string oradb = ConfigurationManager.ConnectionStrings["Orcl"].ToString(); OracleConnection conn = new OracleConnection(oradb); try { conn.Open();//打开指定的连接 OracleCommand com = conn.CreateCommand(); com.CommandText = "update departments set department_name='archie' where department_id = 10";//写好想执行的Sql语句 com.ExecuteNonQuery(); } catch { MessageBox.Show("erro");//如果发生异常,则提示出错 } finally { conn.Close();//关闭打开的连接 } #endregion } }}点击更改,再重新查询
增删改查,以下还未实验
以users表为例,有三个字段,自增长的编号id,int类型;名称name,nvarchar类型,密码pwd,nvarchar类型
引入System.Data.OracleClient;命名空间
private void button3_Click(object sender, EventArgs e) { string oradb = ConfigurationManager.ConnectionStrings["Orcl"].ToString(); OracleConnection conn = new OracleConnection(oradb); try { conn.Open();//打开指定的连接 string sql = "insert into departments(department_id,department_name,manager_id,location_id)values(:department_id:department_name,:manager_id,:location_id)"; OracleCommand cmd = new OracleCommand(sql, conn); OracleParameter parn = new OracleParameter(":department_id", 1); cmd.Parameters.Add(parn); OracleParameter parp = new OracleParameter(":department_name","archie"); cmd.Parameters.Add(parp); parn = new OracleParameter(":manager_id", 12); cmd.Parameters.Add(parn); parp = new OracleParameter(":location_id", 23); cmd.Parameters.Add(parp); int result = cmd.ExecuteNonQuery(); //result接收受影响行数,也就是说result大于0的话表示添加成功 cmd.Dispose(); } catch { MessageBox.Show("erro");//如果发生异常,则提示出错 } finally { conn.Close();//关闭打开的连接 } }
publicint Insert(stringname, string pwd)
{
OracleConnection conn = new OracleConnection(@"Data Source=SBZX;User ID=simis;Password=zeda");
conn.Open();
stringsql = "insert into users(name,pwd)values(:name,:pwd)";
OracleCommand cmd = new OracleCommand(sql,conn);
OracleParameter parn = new OracleParameter(":name", name);
cmd.Parameters.Add(parn);
OracleParameter parp = new OracleParameter(":pwd", name);
cmd.Parameters.Add(parp);
int result = cmd.ExecuteNonQuery(); //result接收受影响行数,也就是说result大于0的话表示添加成功
conn.Close();
cmd.Dispose();
return result;
}
publicint Update(int id)
{
OracleConnectionconn = new OracleConnection(@"Data Source=SBZX;User ID=simis;Password=zeda");
conn.Open();
stringsql = "delete from users where id=:id";
OracleCommandcmd = new OracleCommand(sql,conn);
OracleParameterpari = new OracleParameter(":id", id);
cmd.Parameters.Add(pari);
int result = cmd.ExecuteNonQuery(); //result接收受影响行数,也就是说result大于0的话表示添加成功
conn.Close();
cmd.Dispose();
return result;
}
publicint Insert(stringname, string pwd, intid)
{
OracleConnectionconn = new OracleConnection(@"Data Source=SBZX;User ID=simis;Password=zeda");
conn.Open();
stringsql = "update users set name=:name,pwd=:pwdwhere id=:id";
OracleCommandcmd = new OracleCommand(sql,conn);
OracleParameterparn = new OracleParameter(":name", name);
cmd.Parameters.Add(parn);
OracleParameterparp = new OracleParameter(":pwd", name);
cmd.Parameters.Add(parp);
OracleParameterpari = new OracleParameter(":id", id);
cmd.Parameters.Add(pari);
intresult = cmd.ExecuteNonQuery();
conn.Close();
cmd.Dispose();
returnresult;
}
publicDataTable Select()
{
OracleConnectionconn = new OracleConnection(@"Data Source=SBZX;User ID=simis;Password=zeda");
conn.Open();
stringsql = "select * from users";
OracleCommandcmd = new OracleCommand(sql,conn);
OracleDataAdapteroda = new OracleDataAdapter(cmd);
DataTable dt = new DataTable();
oda.Fill(dt);
conn.Close();
cmd.Dispose();
return dt;
}
方法写好后,下面举一个查询的例子,在form窗体中拖一个DataGridView,然后在Load方法中
private void Form1_Load(object sender, EventArgs e)
{
dataGridView1.DataSource = Select();
}
这样一运行,DataGridView中就会显示数据了
- VS2010连接Oracle11g数据库
- oracle11g sqlplus 连接远程数据库
- dos命令行连接数据库 oracle11g
- vs2010连接mysql数据库
- vs2010连接Mysql数据库
- VS2010连接mysql数据库
- VS2010连接MySQL数据库
- vs2010连接mysql数据库
- vs2010连接oracle数据库
- Oracle11g OCCI 连接数据库异常问题解决办法
- C#中使用OracleConnection连接Oracle11g数据库
- 使用PL/SQL软件连接oracle11g数据库
- Spring3+Hibernate4连接Oracle11g数据库参数配置
- 怎样使用sqlplus连接oracle11g数据库
- PowerDesigner连接64位Oracle11g数据库
- Oracle11g创建、连接数据库的注意事项
- vs2010连接数据库部分程序
- Vs2010连接Mysql数据库方法
- 软件项目开发流程以及人员职责
- 获取屏幕分辨率及网页信息
- 常见的敏捷开发流程比较
- 程序中理解网络七层协议
- Oracle 11g R2 RAC:使用 srvctl 工具管理 service 资源
- VS2010连接Oracle11g数据库
- openfire+spark
- 卓有成效的敏捷开发流程
- apache标准虚拟主机配置
- 12个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球(13个呢?)
- 最火的前端开源项目
- 10 步让你成为更优秀的程序员
- Oracle 11g R2 RAC:使用 DBMS_SERVICE 包管理 service 资源
- Java Web基础教程二 ---------配置篇一Java环境配置