设为首页 收藏本站
查看: 690|回复: 0

[经验分享] .NET 连接Oracle数据库 OLE DB .NET 数据提供程序和 Visual C# .NET 访问 Oracle 数据库

[复制链接]
YunVN网友  发表于 2016-8-16 06:41:21 |阅读模式
この資料では、ADO.NET の OLE DB マネージ プロバイダを使用して Oracle データベースにアクセスする方法について、実例を基に説明します。
必要条件
必要なハードウェア、ソフトウェア、ネットワーク インフラストラクチャ、および Service Pack は次のとおりです。 · Microsoft Windows 2000 Professional、Windows 2000 Server、Windows 2000 Advanced Server、Windows NT 4.0 Server のいずれか
· Oracle Client ツール (コンピュータにインストールされていること)
· Microsoft Visual Studio .NET
この資料は、次のトピックについて詳しい知識のあるユーザーを対象としています。 · Visual Studio .NET
· ADO.NET の基本および構文
· Oracle への接続
Oracle データベースへのアクセス手順
1. Oracle で次のステートメントを使用して、TestTable という名前のテーブルを作成します。
Create Table TestTable (c1 char(5));
2. 次のステートメントを実行して、TestTable にデータを挿入します。
Insert into TestTable c1 values('Test1');
Insert into TestTable c1 values('Test2');
Insert into TestTable c1 values('Test3');
3. Visual Studio .NET を起動します。
4. Visual C# .NET で新しい Windows アプリケーション プロジェクトを開きます。
5. プロジェクトに System.Data 名前空間への参照が含まれていることを確認し、含まれていない場合は追加します。
6. Button コントロールを Form1 に配置し、Name プロパティを btnTest に変更します。
7. 後続のコードで System、System.Data、System.Data.OleDb の名前空間を使用して宣言を修飾しなくてもよいようにするため、以下の例のように、using ステートメントに各名前空間を定義します。
using System;
using System.Data;
using System.Data.OleDb;
8. フォーム ビューに切り替え、[btnTest] をダブルクリックしてクリック イベント ハンドラを追加します。ハンドラに、以下のコードを追加します。
String sConnectionString =
"Provider=MSDAORA.1;User ID=myUID;password=myPWD;
Data Source=myOracleServer;Persist Security Info=False";
String mySelectQuery =
"SELECT * FROM TestTable where c1 LIKE ?";
OleDbConnection myConnection = new OleDbConnection(sConnectionString);
OleDbCommand myCommand = new OleDbCommand(mySelectQuery, myConnection);
myCommand.Parameters.Add("@p1", OleDbType.Char, 5).Value = "Test%";
myConnection.Open();
OleDbDataReader myReader = myCommand.ExecuteReader();
int RecordCount=0;
try
{
while (myReader.Read())
{
RecordCount = RecordCount + 1;
MessageBox.Show(myReader.GetString(0).ToString());
}
if (RecordCount == 0)
{
MessageBox.Show("No data returned");
}
else
{
MessageBox.Show("Number of records returned: " + RecordCount);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
finally
{
myReader.Close();
myConnection.Close();
}

9. プロジェクトを保存します。
10. [デバッグ] メニューの [開始] をクリックして、プロジェクトを実行します。
11. [btnTest] ボタンをクリックして、データを表示します。
========================================================================================
DSC0000.png
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.OleDb;
using System.Collections;
using System.Configuration;
namespace ConnectionOracle
{
public partial class main : Form
{
public main()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Configuration config = ConfigurationManager.OpenExeConfiguration("");
AppSettingsSection settings = (AppSettingsSection)config.GetSection("appSettings");
String connectionString = settings.Settings["connectionString"].Value;
String sqlString = settings.Settings["sqlString"].Value;
OleDbConnection conn = new OleDbConnection(connectionString);
OleDbDataReader reader;
DataTable table = new DataTable(); ;
try
{
conn.Open();
OleDbCommand cmd = conn.CreateCommand();
cmd.CommandText =sqlString+ " and rownum<=10";
using (reader = cmd.ExecuteReader())
{
table.Load(reader);
}
reader.Close();
conn.Close();
Console.WriteLine(table.Columns);
dataGridView1.DataSource = table;
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
conn.Close();
}
}
private void main_Load(object sender, EventArgs e)
{
}
private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
{
if (exitConfirm(e))
{
toRelease();
}
}
private bool exitConfirm(FormClosingEventArgs e)
{
bool exitFlag=false;
closeConfirm cc = new closeConfirm();
DialogResult dr = cc.ShowDialog(this);
if (dr == DialogResult.Cancel)
{
e.Cancel = true;
}
else
{
if (!cc.closePass.Text.Equals("123456"))
{
e.Cancel = true;
}
else
{
exitFlag = true;
}
}
return exitFlag;
}
private void toRelease() {
}
}
}

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="connectionString" value="Provider=MSDAORA;Data Source=ywinweb;Persist Security Info=True;Password=btw;User ID=btw"/>
<add key="sqlString" value="select ip_address,create_dt,model from t_log where log_level=0"/>
</appSettings>
</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;
namespace ConnectionOracle
{
public partial class closeConfirm : Form
{
public closeConfirm()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.OK;
}
}
}

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-258255-1-1.html 上篇帖子: 在Oracle中如何利用Rowid查找和删除表中的重复记录-数据库专栏,ORACLE 下篇帖子: Oracle 监听器异常处理 监听程序当前无法识别连接描述符中请求的服务 (ORA-12514)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表