ADO.NET_第二篇_OracleConnection/OracleCommand
2010-06-04 19:39
465 查看
+++ 下面的四个例子主要演示如何使用OracleConnection和OracleCommand对象,直接把代码放在页面的Page_Load事件里。注意:我说的是“页面”,而不是“窗体”,说明本例子是B/S程序。如果用C/S演示,还要在窗体里放控件,用B/S程序省事,直接将结果显示在页面里。
+++ 但是,通常,无论我们开发BS程序,还是开发C/S程序,在设计阶段编写程序集(或DLL)的时候,都在C/S下进行的。因为C/S程序比B/S程序编译的快很多,提高工作效率嘛!而且编写程序集与软件是C/S结构还是B/S结构没有太大关系。
++ 例一演示如何连接Oracle数据库
++ 例二演示数据库连接字符串的不同写法
++ 例三演示加入异常处理模块
++ 例四演示如何用OracleConnectionStringBuilder构造数据库连接字符串
+++ 例一:
string connStr = "Data Source=ora9; uid=scott; pwd=tiger; unicode=true";
System.Data.OracleClient.OracleConnection conn = new System.Data.OracleClient.OracleConnection(connStr);
conn.Open();
System.Windows.Forms.MessageBox.Show();
Response.Write("Connectioned!");
conn.Close();
conn.Dispose();
++ 说明:
1) 本例只是简单演示如何与Oracle数据库建立连接;
2) conn.Open()是打开与数据库的连接;
3) conn.Close()是关闭与数据库的连接;
4) conn.Dispose()是释放资源。Dispose方法涉及.NET的内存管理问题,以后我会专门介绍。
+++ 例二:
//string connstr = "data source=ora9; user id=scott; password=tiger; unicode=true";
//string connstr = "server=ora9; uid=scott; pwd=tiger; unicode=true";
//string connstr = "data source=ora9; uid=scott; pwd=tiger; unicode=true; Integrated Security=false";
string connStr = "data source=ora9; uid=scott; pwd=tiger; unicode=true";
System.Data.OracleClient.OracleConnection conn = new System.Data.OracleClient.OracleConnection();
conn.ConnectionString = connStr;
conn.Open();
System.Data.OracleClient.OracleCommand cmd = conn.CreateCommand();
cmd.CommandText = "SELECT * FROM EMP";
cmd.CommandType = CommandType.Text;
System.Data.OracleClient.OracleDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
Response.Write(dr.GetInt32(0).ToString() + ", " + dr.GetString(1) + "</br>");
}
dr.Close();
dr.Dispose();
conn.Close();
cmd.Dispose();
conn.Dispose();
++ 说明:
(1) 本例演示数据库连接字符串的不同写法。你可以看一下例四OracleConnectionStringBuilder,用它来构造数据库连接字符串,你就知道有那些选项;
(2) 由OracleConnection对象创建OracleCommand对象,OracleCommand.ExecuteReader方法返回OracleDataReader;
(3) OracleConnection.Open()只要放在执行SQL语句之前就行,不过一般是在创建OracleConnection对象后,设置数据库连接字符串后。
+++ 例三:
string connStr = "data source=ora9; uid=scott; pwd=tiger; unicode=true";
string sqlStr = "SELECT * FROM EMP";
System.Data.OracleClient.OracleConnection conn = new System.Data.OracleClient.OracleConnection(connStr);
conn.Open();
System.Data.OracleClient.OracleCommand cmd = conn.CreateCommand();
cmd.CommandText = sqlStr;
cmd.CommandType = CommandType.Text;
try
{
System.Data.OracleClient.OracleDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
Response.Write(dr.GetInt32(0).ToString() + ", " + dr.GetString(1) + ", " +
dr.GetOracleString(2).ToString() + ", " + dr.GetInt32(3).ToString() + ", " +
dr.GetDateTime(4).ToString() + ", " + dr.GetDecimal(5).ToString() + "</br>");
}
dr.Close();
dr.Dispose();
cmd.Dispose();
}
catch (Exception ex)
{
Response.Write(ex.Message + "</br>");
}
finally
{
conn.Close();
conn.Dispose();
}
++ 说明:
1) 本例演示对数据库操作加入异常处理。在数据库层,加入错误处理是必须的,一般做项目时,需要写几个类完成错误处理,并将错误写入到错误日志;
2) 由OracleConnection对象创建OracleCommand对象,OracleCommand.ExecuteReader方法返回OracleDataReader数据集;
3) 通常是将程序在运行时可能出错的地方加入异常处理模块,注意是运行时,不要把全部的代码段都放在异常处理中。
+++ 例四:
protected void Page_Load(object sender, EventArgs e)
{
string sqlStr = "select * from emp";
System.Data.OracleClient.OracleConnectionStringBuilder connStrBld = new System.Data.OracleClient.OracleConnectionStringBuilder();
connStrBld.DataSource = "ora9";
connStrBld.UserID = "scott";
connStrBld.Password = "tiger";
connStrBld.Unicode = true;
System.Data.OracleClient.OracleConnection conn = new System.Data.OracleClient.OracleConnection(connStrBld.ConnectionString);
conn.Open();
System.Data.OracleClient.OracleCommand cmd = new OracleCommand();
cmd.Connection = conn;
cmd.CommandText = sqlStr;
cmd.CommandType = CommandType.Text;
System.Data.OracleClient.OracleDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
Response.Write(dr.GetInt32(0).ToString() + ", " + dr.GetString(1) + ", " +
dr.GetOracleString(2).ToString() + ", " + dr.GetDateTime(4).ToString() + ", " +
dr.GetDecimal(5).ToString() + "</br>");
}
dr.Close();
dr.Dispose();
cmd.Dispose();
conn.Close();
conn.Dispose();
}
++ 说明:
(1) 本例是使用OracleConnectionStringBuilder类构造数据库连接字符串。
+++ 但是,通常,无论我们开发BS程序,还是开发C/S程序,在设计阶段编写程序集(或DLL)的时候,都在C/S下进行的。因为C/S程序比B/S程序编译的快很多,提高工作效率嘛!而且编写程序集与软件是C/S结构还是B/S结构没有太大关系。
++ 例一演示如何连接Oracle数据库
++ 例二演示数据库连接字符串的不同写法
++ 例三演示加入异常处理模块
++ 例四演示如何用OracleConnectionStringBuilder构造数据库连接字符串
+++ 例一:
string connStr = "Data Source=ora9; uid=scott; pwd=tiger; unicode=true";
System.Data.OracleClient.OracleConnection conn = new System.Data.OracleClient.OracleConnection(connStr);
conn.Open();
System.Windows.Forms.MessageBox.Show();
Response.Write("Connectioned!");
conn.Close();
conn.Dispose();
++ 说明:
1) 本例只是简单演示如何与Oracle数据库建立连接;
2) conn.Open()是打开与数据库的连接;
3) conn.Close()是关闭与数据库的连接;
4) conn.Dispose()是释放资源。Dispose方法涉及.NET的内存管理问题,以后我会专门介绍。
+++ 例二:
//string connstr = "data source=ora9; user id=scott; password=tiger; unicode=true";
//string connstr = "server=ora9; uid=scott; pwd=tiger; unicode=true";
//string connstr = "data source=ora9; uid=scott; pwd=tiger; unicode=true; Integrated Security=false";
string connStr = "data source=ora9; uid=scott; pwd=tiger; unicode=true";
System.Data.OracleClient.OracleConnection conn = new System.Data.OracleClient.OracleConnection();
conn.ConnectionString = connStr;
conn.Open();
System.Data.OracleClient.OracleCommand cmd = conn.CreateCommand();
cmd.CommandText = "SELECT * FROM EMP";
cmd.CommandType = CommandType.Text;
System.Data.OracleClient.OracleDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
Response.Write(dr.GetInt32(0).ToString() + ", " + dr.GetString(1) + "</br>");
}
dr.Close();
dr.Dispose();
conn.Close();
cmd.Dispose();
conn.Dispose();
++ 说明:
(1) 本例演示数据库连接字符串的不同写法。你可以看一下例四OracleConnectionStringBuilder,用它来构造数据库连接字符串,你就知道有那些选项;
(2) 由OracleConnection对象创建OracleCommand对象,OracleCommand.ExecuteReader方法返回OracleDataReader;
(3) OracleConnection.Open()只要放在执行SQL语句之前就行,不过一般是在创建OracleConnection对象后,设置数据库连接字符串后。
+++ 例三:
string connStr = "data source=ora9; uid=scott; pwd=tiger; unicode=true";
string sqlStr = "SELECT * FROM EMP";
System.Data.OracleClient.OracleConnection conn = new System.Data.OracleClient.OracleConnection(connStr);
conn.Open();
System.Data.OracleClient.OracleCommand cmd = conn.CreateCommand();
cmd.CommandText = sqlStr;
cmd.CommandType = CommandType.Text;
try
{
System.Data.OracleClient.OracleDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
Response.Write(dr.GetInt32(0).ToString() + ", " + dr.GetString(1) + ", " +
dr.GetOracleString(2).ToString() + ", " + dr.GetInt32(3).ToString() + ", " +
dr.GetDateTime(4).ToString() + ", " + dr.GetDecimal(5).ToString() + "</br>");
}
dr.Close();
dr.Dispose();
cmd.Dispose();
}
catch (Exception ex)
{
Response.Write(ex.Message + "</br>");
}
finally
{
conn.Close();
conn.Dispose();
}
++ 说明:
1) 本例演示对数据库操作加入异常处理。在数据库层,加入错误处理是必须的,一般做项目时,需要写几个类完成错误处理,并将错误写入到错误日志;
2) 由OracleConnection对象创建OracleCommand对象,OracleCommand.ExecuteReader方法返回OracleDataReader数据集;
3) 通常是将程序在运行时可能出错的地方加入异常处理模块,注意是运行时,不要把全部的代码段都放在异常处理中。
+++ 例四:
protected void Page_Load(object sender, EventArgs e)
{
string sqlStr = "select * from emp";
System.Data.OracleClient.OracleConnectionStringBuilder connStrBld = new System.Data.OracleClient.OracleConnectionStringBuilder();
connStrBld.DataSource = "ora9";
connStrBld.UserID = "scott";
connStrBld.Password = "tiger";
connStrBld.Unicode = true;
System.Data.OracleClient.OracleConnection conn = new System.Data.OracleClient.OracleConnection(connStrBld.ConnectionString);
conn.Open();
System.Data.OracleClient.OracleCommand cmd = new OracleCommand();
cmd.Connection = conn;
cmd.CommandText = sqlStr;
cmd.CommandType = CommandType.Text;
System.Data.OracleClient.OracleDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
Response.Write(dr.GetInt32(0).ToString() + ", " + dr.GetString(1) + ", " +
dr.GetOracleString(2).ToString() + ", " + dr.GetDateTime(4).ToString() + ", " +
dr.GetDecimal(5).ToString() + "</br>");
}
dr.Close();
dr.Dispose();
cmd.Dispose();
conn.Close();
conn.Dispose();
}
++ 说明:
(1) 本例是使用OracleConnectionStringBuilder类构造数据库连接字符串。
相关文章推荐
- ADO.NET_第七篇_OracleCommand_01ExecuteNonQuery
- ADO.NET_第八篇_OracleCommand_执行多个SQL语句01
- ADO.NET最佳实践--Connection,Command,DataReader,DataSet,DataAdapter,Dataview
- ADO.NET_第七篇_OracleCommand_02ExecuteReader
- ADO.NET_第八篇_OracleCommand_执行多个SQL语句02
- Tips&Tricks系列六:ADO.NET OracleConnection.ClearPool(conn)
- ADO.NET技术简介(一) Connection、Command、DataReader、DataAdapter、DataSet和DataTable
- 浅谈ADO.NET中的对象——Connection、Command、DataReader、DataAdapter、DataSet、DataTable
- Winform开发之ADO.NET对象Connection、Command、DataReader、DataAdapter、DataSet和DataTable简介
- ADO.NET——Connection、Command。
- ADO.NET_06_OracleCommand
- ADO.NET 基础(Connection、Command、DataReader)
- ADO.NET 主要的三个对象(SqlConnection/SqlCommand/SqlDataReader)
- ADO.NET_第七篇_OracleCommand_03ExecuteScalar
- IDataEnvironment接口,ADO.Net对Connection、Command等对象的设计时支持。
- ADO.NET_第七篇_OracleCommand_04DataSet
- 【ADO.NET】 概述以及connection与command
- ADO.NET_第七篇_OracleCommand_05执行存储过程
- Ado.net Oracle语句问题
- ADO.NET(二) oracle数据库链接、和Oracle.DataAccess.dll 有关异常的各种问题