日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

c#连接oracle11,C#连接远程oracle11g数据库

發布時間:2024/9/19 C# 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c#连接oracle11,C#连接远程oracle11g数据库 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

windows form程序開發,連接和操作oralce數據庫,可以使用.NET專門提供的Oracle.NET

framework

數據庫提供的類,該類位于System.Data.OracleClient命名空間中,并包含在System.Data.OracleClient.dll程序集中。

使用方法,在“解決方案管理器”上右鍵單擊項目名稱,選擇快捷菜單中的“添加引用”項,完成以上操作后,彈出“添加引用”對話框,選擇對話框中的.NET選項卡,然戶在.NET表中選擇System.Data.OracleClient項,并單擊“確定”按鈕保存退出,引用添加完成后,在程序中引入命名空間,按照下面的示例說明即可完成對Oracle數據庫的操作,

遠程示例:

遠程oracle數據庫中 "product\11.1.0\db_1\NETWORK\ADMIN\tnsnames.ora"

文件的配置項如下(其中chenslxp為服務器名,ip地址為192.168.198.128)

ORCL =

(DESCRIPTION =

(ADDRESS =

(PROTOCOL = TCP)(HOST = chenslxp)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = orcl)

)

)

連接方法1.:

在"product\11.1.0\db_1\NETWORK\ADMIN\tnsnames.ora" 文件里追加連接DNS

連接方法2:

把字符串連接寫成:

Data

Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=chenslxp)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=orcl)));Persist

Security Info=True;User Id=user1; Password=1

其中的chenslxp可以ip地址替換,User Id=user1; Password=1 需要用真實用戶名和密碼替換。

C#連接遠程Oracle數據庫及示例

Windows

Form程序開發,連接和操作Oralce數據庫,可以使用.NET專門提供的Oracle.NET Framework

數據庫提供的類,該類位于System.Data.OracleClient命名空間中,并包含在System.Data.OracleClient.dll程序集中。

使用方法,在“解決方案管理器”上右鍵單擊項目名稱,選擇快捷菜單中的“添加引用”項,完成以上操作后,彈出“添加引用”對話框,選擇對話框中的.NET選項卡,然戶在.NET表中選擇System.Data.OracleClient項,并單擊“確定”按鈕保存退出,引用添加完成后,在程序中引入命名空間,按照下面的示例說明即可完成對Oracle數據庫的操作,

C#連接遠程數據庫遠程示例:

把字符串連接寫成:

Data

Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.100)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=sunday)));User

ID=sa;Password=sa

方法2:oracleConnectionString :Provider=OraOLEDB.Oracle.1;User

ID=scott;Password=tiger;Data Source=(DESCRIPTION = (ADDRESS_LIST=

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521)))

(CONNECT_DATA = (SERVICE_NAME = orcl)))

方法3:oracleConnectionString:User

ID=scott;Password=tiger;Data Source=(DESCRIPTION = (ADDRESS_LIST =

(ADDRESS = (PROTOCOL =

TCP)(HOST=10.10.125.250)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=orcl)))

User ID=scott;Password=tiger;Data

Source=(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL =

TCP)(HOST=192.168.1.100)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=orcl)))

Data?Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.100)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=ROGNE)));Persist?Security?Info=True;User?Id=sa;?Password=sa

關于數據庫的操作

1.數據庫連接

有2種:

第一種:古老的方法(較為死板,不利于靈活操作),即用OracleConnection的類來連接

string mysqlstr ="user id = xal;data source = xal;password =

xal";

OracleConnection mycnn = new OracleConnection(mysqlstr);

mycnn.open();

第二種:新式的方法(使用較為靈活),即利用OracleConnectoinStringBuilder類來連接

OracleConnectionStringBuilder OcnnStrB = new

OracleConnectionStringBuilder;

OCnnStrB.DataSource = "xal";

OCnnStrB.UserID = "xal";

OCnnStrB.Password = "xal";

myCnn = new OracleConnection(OCnnStrB.ConnectionString);

myCnn.open();

2.事務操作

myConn.open();

OracleCommand insertComm = new

OracleCommand();

insertComm.Connection = myCnn;

insertComm.Transaction = myCnn.BeginTransaction();

try

{

事務操作語句;

insertComm.Transaction.Commit();

}

catch(exption ex)

{

insertComm.Transaction.Rollback();

MessageBox(ex.Message);

}

finally

{

myConn.close();

}

3.創建命令參數

private OracleParameter CreateOraParam(string ParamName, object

ParamValue)

{

OracleParameter Result = new OracleParameter();

Result.ParameterName = ParamName;

if (ParamValue != null)

{

Result.Value = ParamValue;

}

else

{

Result.Value = DBNull.Value;

}

return Result;

}

這樣的話,當要對數據庫操作時就可以:

insertComm.CommandText = "insert into TESTADODOTNET (ID, NAME, AGE,

PIC) values (:pID, :pName, :pAge, :pPic)";

insertComm.Parameters.Add(CreateOraParam("pID", (txtID.Text.Trim()

!= "") ? txtID.Text.Trim() : null));

insertComm.Parameters.Add(CreateOraParam("pName",

(txtName.Text.Trim() != "") ? txtName.Text.Trim() : null));

insertComm.Parameters.Add(CreateOraParam("pAge",

(txtAge.Text.Trim() != "") ? txtAge.Text.Trim() : null));

4.數據集的瀏覽(例:將結果顯示在comboBox1中)

OracleDataAdapter oda = new OracleDataAdapter(selectCommand);

DataTable newtable = new DataTable();

oda.Fill(newtable);

foreach (DataRow dr in newtable.Rows)?//共有newtable.rows.count條記錄

{

comboBox1.Items.Add(dr[0].ToString());

}

5.設置輸入只能是數字(例:現在往textBox1中輸入。如只能輸入字母的方法類似)

private void textBox1_KeyPress(object sender,

KeyPressEventArgs e)//屬性中的事件

{

e.Handled = !((Char.IsNumber(e.KeyChar)) || ((Keys)e.KeyChar ==

Keys.Back));

}

6.Form窗口關閉時引發的事件:彈出一個確定退出的對話框

private void

form1_FormClosing(object sender, FormClosingEventArgs e)

{

if (MessageBox.Show("是否退出系統?", "確認", MessageBoxButtons.YesNo,

MessageBoxIcon.Question) == DialogResult.Yes)

{

e.Cancel = false;

}

else

{

e.Cancel = true;

}

}

7.OracleParameter的用法

第一步:先創建命令參數

private OracleParameter CreateOraParam(string ParamName, object

ParamValue)

{

OracleParameter Result = new OracleParameter();

Result.ParameterName = ParamName;

if (ParamValue != null)

{

Result.Value = ParamValue;

}

else

{

Result.Value = DBNull.Value;

}

return Result;

}

第二步:寫SQL語句,并調用第一步的參數(例如::pID是個參數,代表調用insertComm.Parameters.Add中的pID的值)

insertComm.CommandText = "insert into

TESTADODOTNET (ID, NAME, AGE, PIC) values (:pID, :pName, :pAge,

:pPic)";

insertComm.Parameters.Add(CreateOraParam("pID",

(txtID.Text.Trim() != "") ? txtID.Text.Trim() : null));

insertComm.Parameters.Add(CreateOraParam("pName",

(txtName.Text.Trim() != "") ? txtName.Text.Trim() : null));

insertComm.Parameters.Add(CreateOraParam("pAge",

(txtAge.Text.Trim() != "") ? txtAge.Text.Trim() : null));

第三步:添加pictureBox1圖片的二進制流字段pAge

//創建字節數組用于給IMAGE字段賦值,fileLength是指所選的文件的大小

byte[] tmpImage = new byte[fileLength];

//根據字節數組創建內存流,之后對該流的操作將會影響字節數組的內容

MemoryStream curStream = new MemoryStream(tmpImage);

//把控件內顯示的圖形寫入到流中,需強制指定格式

pictureBox1.Image.Save(curStream,

curImageFormat);//curImageFormat前面指定的圖片格式

insertComm.Parameters.Add(CreateOraParam("pPic", tmpImage));

OracleConnection conn = new

OracleConnection(@"Data Source=ZX;User ID=sa;Password=sa");//Data

Source后面跟你數據庫的名字,User ID為用戶名,Password為密碼

conn.Open();

string sql = "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;

conn.Open();

string sql = "delete from users where id=:id";

OracleCommand cmd = new OracleCommand(sql, conn);

OracleParameter pari = new OracleParameter(":id", id);

cmd.Parameters.Add(pari);

int

result =

cmd.ExecuteNonQuery();//result接收受影響行數,也就是說result大于0的話表示添加成功

conn.Close();

cmd.Dispose();

return result;

public DataTable Select()

{

OracleConnection conn = new OracleConnection(@"Data Source=zz;User

ID=sa;Password=sa");//Data Source后面跟你數據庫的名字,User

ID為用戶名,Password為密碼

conn.Open();

string

sql = "select * from users";

OracleCommand cmd = new OracleCommand(sql, conn);

OracleDataAdapter oda = new OracleDataAdapter(cmd);

DataTable dt = new DataTable();

oda.Fill(dt);

conn.Close();

cmd.Dispose();

return

dt;?}

dataGridView1.DataSource = Select();

總結

以上是生活随笔為你收集整理的c#连接oracle11,C#连接远程oracle11g数据库的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。