Bài viết mới

[C#] Hướng dẫn thêm, xóa, sửa database ORACLE trong lập trình csharp

[C#] Hướng dẫn thêm, xóa, sửa database ORACLE trong lập trình csharp
Đăng bởi: Thảo meo - Lượt xem: 398 20:39:13, 18/05/2018CSHARP   In bài viết

Xin chào các bạn, bài hôm nay, mình sẽ tiếp tục hướng dẫn các bạn cách thêm, xóa, sửa dữ liệu database Oracle trong lập trình C#.

[C#] Tutorial CRUB DATABASE ORACLE IN CSHARP

Oracle là hệ quản trị cơ sở dữ liệu phổ biến nhất năm 2018.

them xoa sua oracle trong c#

 

Dưới đây là bảng xếp hạng các hệ quản trị cơ sở dữ liệu phổ biến.

oracle trong lập trình c#

 

Giới thiệu Oracle Server

Oracle Server là một hệ quản trị CSDL cung cấp nhiều công cụ trong việc quản lý thông tin.

Oracle Server là một tập hợp các tập tin vật lý, tiến trình và những cấu trúc bộ nhớ dùng để thực hiện các yêu cầu truy xuất dữ liệu, thực hiện các thao tác phục hồi và lưu trữ dữ liệu khi cần thiết.

Oracle Server có thể chạy trên một hay nhiều máy tính với những mô hình khác nhau:

  1. Client – Application Server – Server: đây là mô hình 3 lớp, người dùng truy cập từ máy đơn (Client) vào máy chứa dữ liệu (Server) thông qua một trạm trung gian gọi là Application Server, dùng để thực hiện việc xử lý các yêu cầu của ứng dụng khi cần truy xuất dữ liệu.
  2. Client – Server: thông qua hệ thống mạng, người dùng sẽ dùng máy tính (Client) để truy xuất CSDL được đặt trên một máy tính khác (Server) trong hệ thống mạng, truy xuất dữ liệu theo dạng này được gọi là mô hình 2 lớp.
  3. Host – Base: người dùng truy xuất dữ liệu ngay tại máy dùng làm Server lưu trữ CSDL.

 

Hướng dẫn thêm, xóa, sửa database Oracle trong C#.

Trong bài viết này, mình sử dụng thư viện Oracle.ManagedDataAccess.Client driver connect oracle với C#.

Các bạn, có thể download thư viện này về bằng Nuget:

thu vien oracle c#

 

Dưới đây là giao diện demo CRUB Database Oracle C#

 

demo oracle trong lập trình c#

Bước 1: Đầu tiên các bạn tạo 1 class DataProvider 

Trong class này, mình đã tích hợp sẵn các hàm làm việc với database Oracle

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

using Oracle.ManagedDataAccess.Client;
namespace Sqlite_Demo
{
    class DataProvider
    {
        static string host = "localhost";
        static int port = 1521;
        static string sid = "xe";
        static string user = "sinhvien";
        static string password = "sinhvien";

        private string connectionSTR = @"Data Source=(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = "
                 + host + ")(PORT = " + port + "))(CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = "
                 + sid + ")));Password=" + password + ";User ID=" + user;

        public DataTable ExecuteQuery(string query, object[] parameter = null)
        {
            DataTable data = new DataTable();

            using (OracleConnection connection = new OracleConnection(connectionSTR))
            {
                connection.Open();

                OracleCommand command = new OracleCommand(query, connection);

                if (parameter != null)
                {
                    string[] listPara = query.Split(' ');
                    int i = 0;
                    foreach (string item in listPara)
                    {
                        if (item.Contains('@'))
                        {
                            command.Parameters.Add(item, parameter[i]);
                         
                            i++;
                        }
                    }
                }

                OracleDataAdapter adapter = new OracleDataAdapter(command);

                adapter.Fill(data);

                connection.Close();
            }

            return data;
        }

        public DataSet ExecuteQuery_Dataset(string query, object[] parameter = null)
        {
            DataSet data = new DataSet();

            using (OracleConnection connection = new OracleConnection(connectionSTR))
            {
                connection.Open();

                OracleCommand command = new OracleCommand(query, connection);

                if (parameter != null)
                {
                    string[] listPara = query.Split(' ');
                    int i = 0;
                    foreach (string item in listPara)
                    {
                        if (item.Contains('@'))
                        {
                            command.Parameters.Add(item, parameter[i]);
                            i++;
                        }
                    }
                }

                OracleDataAdapter adapter = new OracleDataAdapter(command);

                adapter.Fill(data);

                connection.Close();
            }

            return data;
        }

        public int ExecuteNonQuery(string query, object[] parameter = null)
        {
            int data = 0;

            using (OracleConnection connection = new OracleConnection(connectionSTR))
            {
                connection.Open();

                OracleCommand command = new OracleCommand(query, connection);

                if (parameter != null)
                {
                    string[] listPara = query.Split(' ');
                    int i = 0;
                    foreach (string item in listPara)
                    {
                        if (item.Contains('@'))
                        {
                            command.Parameters.Add(item, parameter[i]);
                            i++;
                        }
                    }
                }

                data = command.ExecuteNonQuery();

                connection.Close();
            }

            return data;
        }

        public object ExecuteScalar(string query, object[] parameter = null)
        {
            object data = 0;

            using (OracleConnection connection = new OracleConnection(connectionSTR))
            {
                connection.Open();

                OracleCommand command = new OracleCommand(query, connection);

                if (parameter != null)
                {
                    string[] listPara = query.Split(' ');
                    int i = 0;
                    foreach (string item in listPara)
                    {
                        if (item.Contains('@'))
                        {
                            command.Parameters.Add(item, parameter[i]);
                            i++;
                        }
                    }
                }

                data = command.ExecuteScalar();

                connection.Close();
            }

            return data;
        }
    }
}

Bước 2: Source code Form1.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Sqlite_Demo
{
    public partial class Form1 : Form
    {

        DataProvider provider = new DataProvider();
      
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            //createTable();
            loadDataToGrid();
        }

        private void btnAdd_Click(object sender, EventArgs e)
        {
            txtID.Clear();
            txtFullname.Clear();
            txtBirthday.Clear();
            txtEmail.Clear();
            txtAddress.Clear();
            txtPhone.Clear();
            txtID.Focus();
        }
       

        public void loadDataToGrid()
        {
            DataTable table = provider.ExecuteQuery("SELECT * FROM STUDENT");
            gvDataStudent.DataSource = table;
            txtID.DataBindings.Clear();
            txtFullname.DataBindings.Clear();
            txtBirthday.DataBindings.Clear();
            txtEmail.DataBindings.Clear();
            txtAddress.DataBindings.Clear();
            txtPhone.DataBindings.Clear();
            txtID.DataBindings.Add("text", table, "stt");
            txtFullname.DataBindings.Add("text", table, "Fullname");
            txtBirthday.DataBindings.Add("text", table, "Birthday");
            txtEmail.DataBindings.Add("text", table, "Email");
            txtAddress.DataBindings.Add("text", table, "Address");
            txtPhone.DataBindings.Add("text", table, "Phone");
        }
        private void btnSave_Click(object sender, EventArgs e)
        {
            string stt = txtID.Text;
            string fullname = txtFullname.Text;
            string birthday = txtBirthday.Text;
            string email = txtEmail.Text;
            string address = txtAddress.Text;
            string phone = txtPhone.Text;

            string strInsert = string.Format("INSERT INTO STUDENT(stt, fullname, birthday, email, address, phone) VALUES({0},'{1}','{2}','{3}','{4}', '{5}')",stt, fullname, birthday, email, address, phone);

            provider.ExecuteNonQuery(strInsert);

            // load data
            loadDataToGrid();
        }

        private void btnUpdate_Click(object sender, EventArgs e)
        {
            string id = txtID.Text;
            string fullname = txtFullname.Text;          
            string birthday = txtBirthday.Text;
            string email = txtEmail.Text;
            string address = txtAddress.Text;
            string phone = txtPhone.Text;

            string strInsert = string.Format("UPDATE STUDENT set fullname='{0}', birthday='{1}', email='{2}', address='{3}', phone='{4}' where stt={5}", fullname, birthday, email, address, phone, id);

            provider.ExecuteNonQuery(strInsert);

            // load data
            loadDataToGrid();
        }

        private void btnDelete_Click(object sender, EventArgs e)
        {
            string id = txtID.Text;           

            string strInsert = string.Format("DELETE FROM STUDENT where stt='{0}'", id);

            provider.ExecuteNonQuery(strInsert);

            // load data
            loadDataToGrid();
        }
    }
}

CHÚC CÁC BẠN THÀNH CÔNG!

DOWNLOAD SOURCE

[C#] Hướng dẫn thêm, xóa, sửa database ORACLE trong lập trình csharp
Đăng bởi: Thảo meo - Lượt xem: 398 20:39:13, 18/05/2018CSHARP   In bài viết

THẢO LUẬN BÀI VIẾT

PHẦN MỀM LẤY TIN BẤT ĐỘNG SẢN

phần mềm lấy tin tự động bất động sản

CÁC BÀI CÙNG CHỦ ĐỀ

Đọc tiếp
.