- [SQLSERVER] Loại bỏ Restricted User trên database MSSQL
- [C#] Hướng dẫn tạo mã QRcode Style trên winform
- [C#] Hướng dẫn sử dụng temp mail service api trên winform
- [C#] Hướng dẫn tạo mã thanh toán VietQR Pay không sử dụng API trên winform
- [C#] Hướng Dẫn Tạo Windows Service Đơn Giản Bằng Topshelf
- [C#] Chia sẻ source code đọc dữ liệu từ Google Sheet trên winform
- [C#] Chia sẻ source code tạo mã QR MOMO đa năng Winform
- [C#] Chia sẻ source code phần mềm lên lịch tự động chạy ứng dụng Scheduler Task Winform
- [Phần mềm] Tải và cài đặt phần mềm Sublime Text 4180 full version
- [C#] Hướng dẫn download file từ Minio Server Winform
- [C#] Hướng dẫn đăng nhập zalo login sử dụng API v4 trên winform
- [SOFTWARE] Phần mềm gởi tin nhắn Zalo Marketing Pro giá rẻ mềm nhất thị trường
- [C#] Việt hóa Text Button trên MessageBox Dialog Winform
- [DEVEXPRESS] Chia sẻ code các tạo report in nhiều hóa đơn trên XtraReport C#
- [POWER AUTOMATE] Hướng dẫn gởi tin nhắn zalo từ file Excel - No code
- [C#] Chia sẻ code lock và unlock user trong domain Window
- [DEVEXPRESS] Vẽ Biểu Đồ Stock Chứng Khoán - Công Cụ Thiết Yếu Cho Nhà Đầu Tư trên Winform
- [C#] Hướng dẫn bảo mật ứng dụng 2FA (Multi-factor Authentication) trên Winform
- [C#] Hướng dẫn convert HTML code sang PDF File trên NetCore 7 Winform
- [C#] Hướng dẫn viết ứng dụng chat với Gemini AI Google Winform
[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#.
[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.
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!