您的位置:首页 > 数据库 > Oracle

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类构造数据库连接字符串。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: