[C#] Hướng dẫn thêm, xóa, sửa database ORACLE trong lập trình csharp
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#. Oracle là hệ quản trị cơ sở dữ liệu phổ biến nhất năm 2018. Dưới đây là bảng xếp hạng các hệ quản trị ...
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#.
Oracle là hệ quản trị cơ sở dữ liệu phổ biến nhất năm 2018.
Dưới đây là bảng xếp hạng các hệ quản trị cơ sở dữ liệu phổ biến.
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:
- 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.
- 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.
- 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:
Dưới đây là giao diện demo CRUB Database Oracle 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