|  
         
          
            | 
		 
		         
   
    |  
        ADO.NET and Oracle  (VB.NET/C#) เขียนโปรแกรมติดต่อกับฐานข้อมูล Oracle Database       |  |  |   
            |  | ADO.NET and Oracle (VB.NET/C#) เขียนโปรแกรมติดต่อกับฐานข้อมูล Oracle  บทความ ADO.NET กับ Oracle การตดิต่อฐานข้อมูลผ่าน ADO.NET ที่นิยมแล้วจะเชื่อมต่อผ่าน 2 วิธี คือผ่าน System.Data.Odbc และ System.Data.OracleClient สำหรับตัวอย่างนี้ จะแนะนำการการติดต่อผ่าน Namepace ของ System.Data.OracleClient 
 สำหรับ ADO.NET กับ Oracle ผ่าน Odbc (System.Data.Odbc) อ่านได้ที่นี่ มีทั้ง VB.NET และ C#
 
 
 ดาวน์โหลด Connector ของ System.Data.OracleClient ให้ ได้ที่นี่
 
 http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=741 
 หลังจากได้ System.Data.OracleClient.dll แล้วให้ Add Reference ดังตัวอย่าง
 
 
  
 คลิกขวาที่ Project เลือก Add Reference
 
 
 
  
 Browse โฟเดอร์ที่จดัเก็บไฟล์ เลือก System.Data.OracleClient.dll เหมือนในตัวอย่าง
 
 
 อันนี้ตารางของ Oracle
 
 
create table MEMBER
(
  CUSTOMERID  VARCHAR2(4),
  USERNAME    VARCHAR2(30),
  PASSWORD    VARCHAR2(30),
  NAME        VARCHAR2(50),
  EMAIL       VARCHAR2(50),
  COUNTRYCODE VARCHAR2(2),
  BUDGET      NUMBER,
  USED        NUMBER
)
-- Data
insert into MEMBER (CUSTOMERID, USERNAME, PASSWORD, NAME, EMAIL, COUNTRYCODE, BUDGET, USED)
values ('C001', 'win', 'win123', 'Win Weerachai', '[email protected]', 'TH', 1000000, 600000);
insert into MEMBER (CUSTOMERID, USERNAME, PASSWORD, NAME, EMAIL, COUNTRYCODE, BUDGET, USED)
values ('C002', 'john', 'john123', 'John  Smith', '[email protected]', 'EN', 2000000, 800000);
insert into MEMBER (CUSTOMERID, USERNAME, PASSWORD, NAME, EMAIL, COUNTRYCODE, BUDGET, USED)
values ('C003', 'jame', 'jame123', 'Jame Born', '[email protected]', 'US', 3000000, 600000);
insert into MEMBER (CUSTOMERID, USERNAME, PASSWORD, NAME, EMAIL, COUNTRYCODE, BUDGET, USED)
values ('C004', 'chalee', 'chalee123', 'Chalee Angel', '[email protected]', 'US', 4000000, 100000);
 นำ Query ไปรันหรือสร้าง Database ตามโครงสร้างชื่อตารางว่า MEMBER
 
 
 
  
 โครงสร้างตาราง
 
 
 
  
 ข้อมูลที่ Insert เข้าไป
 
 Oracle ConnectionString
 
 Data Source=TNS-Name;User Id=myuser;Password=mypassword; 
 อันนี้เป็น Connection String ของ Oracle กับ ADO.NET สำหรับการสร้าง TNS-Name ให้อ่านตามลิ้งค์ข้างล่าง
 
 สร้าง Oracle Create TNS Name (Net Service) สำหรับการเชื่อมต่อ
 
 
 
 
 ตัวอย่างนี้จะประยุกต์ใช้กับ Form Login มีทั้ง VB.NET และ C#
 
 
 frmLogin.vb
 
 Imports System.Data.OracleClient
Imports System.Data
Public Class frmLogin
    Private Sub btnLogin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLogin.Click
        Dim objConn As New OracleConnection
        Dim objCmd As New OracleCommand
        Dim strConnString, strSQL As String
        strConnString = "Data Source=TCDB;User Id=myuser;Password=mypassword;"
        objConn.ConnectionString = strConnString
        objConn.Open()
        Dim intNumRows As Integer
        strSQL = "SELECT COUNT(*) FROM MEMBER WHERE USERNAME = '" & Me.txtUsername.Text & "' AND PASSWORD = '" & Me.txtPassword.Text & "' "
        objCmd = New OracleCommand(strSQL, objConn)
        intNumRows = objCmd.ExecuteScalar()
        If intNumRows > 0 Then
            Dim frm As New frmMain
            frm._strUser = Me.txtUsername.Text
            frm.LoadInfor()
            frm.Show()
            Me.Hide()
        Else
            MessageBox.Show("Username or Password Incorrect")
        End If
        objConn.Close()
        objConn = Nothing
    End Sub
    Private Sub btnClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClose.Click
        If MessageBox.Show("Exit application?", "", MessageBoxButtons.YesNo) = DialogResult.Yes Then
            Application.Exit()
        End If
    End Sub
End Class
 frmMenu.vb
 
 Imports System.Data.OracleClient
Imports System.Data
Public Class frmMain
    Dim strUser As String
    Public Property _strUser() As String
        Get
            Return strUser
        End Get
        Set(ByVal value As String)
            strUser = value
        End Set
    End Property
    Public Sub LoadInfor()
        Dim objConn As New OracleConnection
        Dim objCmd As New OracleCommand
        Dim dtAdapter As OracleDataAdapter
        Dim dt As New DataTable
        Dim strConnString, strSQL As String
        strConnString = "Data Source=TCDB;User Id=myuser;Password=mypassword;"
        objConn.ConnectionString = strConnString
        objConn.Open()
        strSQL = "SELECT * FROM MEMBER WHERE USERNAME = '" & strUser & "' "
        dtAdapter = New OracleDataAdapter(strSQL, objConn)
        dtAdapter.Fill(dt)
        If dt.Rows.Count > 0 Then
            Me.lblUser.Text = strUser
            Me.lblName.Text = dt.Rows(0)("NAME")
            Me.lblEmail.Text = dt.Rows(0)("EMAIL")
        End If
        objConn.Close()
        objConn = Nothing
    End Sub
    Private Sub btnBack_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBack.Click
        Dim frm As New frmLogin
        frm.Show()
        Me.Hide()
    End Sub
End Class
 
 
 
 
 
 Code สำหรับภาษา C#
 
 frmLogin.cs
 
 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.IO;
namespace LoginFormCS
{
    public partial class frmLogin : Form
    {
        public frmLogin()
        {
            InitializeComponent();
        }
        private void btnLogin_Click(object sender, EventArgs e)
        {
            OracleConnection objConn = new OracleConnection();
            OracleCommand objCmd = new OracleCommand();
            string strConnString = null;
            string strSQL = null;
            strConnString = "Data Source=TCDB;User Id=myuser;Password=mypassword;";
            objConn.ConnectionString = strConnString;
            objConn.Open();
            int intNumRows = 0;
            strSQL = "SELECT COUNT(*) FROM MEMBER WHERE USERNAME = '" + this.txtUsername.Text + "' AND PASSWORD = '" + this.txtPassword.Text + "' ";
            objCmd = new OracleCommand(strSQL, objConn);
            intNumRows = Convert.ToInt32(objCmd.ExecuteScalar());
            if (intNumRows > 0)
            {
                frmMain frm = new frmMain();
                frm._strUser = this.txtUsername.Text;
                frm.LoadInfor();
                frm.Show();
                this.Hide();
            }
            else
            {
                MessageBox.Show("Username or Password Incorrect");
            }
            objConn.Close();
            objConn = null;
        }
        private void btnClose_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("Exit application?", "", MessageBoxButtons.YesNo) == DialogResult.Yes)
            {
                Application.Exit();
            }
        }
    }
}
 frmMenu.cs
 
 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.IO;
namespace LoginFormCS
{
    public partial class frmMain : Form
    {
        public frmMain()
        {
            InitializeComponent();
        }
        string strUser;
        public string _strUser
        {
            get { return strUser; }
            set { strUser = value; }
        }
        public void LoadInfor()
        {
            OracleConnection objConn = new OracleConnection();
            OracleCommand objCmd = new OracleCommand();
            OracleDataAdapter dtAdapter = default(OracleDataAdapter);
            DataTable dt = new DataTable();
            string strConnString = null;
            string strSQL = null;
            strConnString = "Data Source=TCDB;User Id=myuser;Password=mypassword;";
            objConn.ConnectionString = strConnString;
            objConn.Open();
            strSQL = "SELECT * FROM MEMBER WHERE USERNAME = '" + strUser + "' ";
            dtAdapter = new OracleDataAdapter(strSQL, objConn);
            dtAdapter.Fill(dt);
            if (dt.Rows.Count > 0)
            {
                this.lblUser.Text = strUser;
                this.lblName.Text = dt.Rows[0]["NAME"].ToString();
                this.lblEmail.Text = dt.Rows[0]["EMAIL"].ToString();
            }
            objConn.Close();
            objConn = null;
        }
        private void btnBack_Click(object sender, EventArgs e)
        {
        frmLogin frm = new frmLogin();
        frm.Show();
        this.Hide();
        }
    }
}
 
 Screenshot
 
 
  
 หน้าจอ Login
 
 
  
 แสดง Screen หลังจาก Login เรียบร้อยแล้ว
 
 Download Code!!
 
 
 
 บทความอื่น ๆ ที่เกี่ยวข้อง
 Go to : ASP.NET System.Data.OracleClient
 Go to : ASP.NET Oracle (System.Data.OracleClient)
 Go to : .NET Windows Form Application  เขียนโปรแกรมบน Windows Form Application ด้วย .NET Framework
 
 
 
 
  
    |  |  |  |  |  
    |  |  |  |  |  
    |  |  |  |  |  
 |  |  
 
            
              | 
                  
                    |  |  
                    |  | By : | TC Admin |  
                    |  | Score Rating : | - |  
                    |  | Create Date : | 2012-03-09 17:08:26 |  
                    |  | Download : | No files |  
                    |  |  |  |  |  
 
 
           
            | Related Links |   
            | | 
                 
                  |  | .NET Smart Device  เขียนโปรแกรมบน Smartphone, Pocket PC , Windows CE , Window  Mobile 5-6, Hand Held,... .NET Smart Device Project เขียนโปรแกรมบน Smartphone, Pocket PC , Windows CE , Window  Mobile 5-6, Hand Held,...
 Rating :
       Update : 
                    2017-03-24 21:17:48                    View :
                    42,754
 |  |   |  |  |  |  | 
 |  |  |