一、创建一个封装类 ( F_Data_T)
1.1、创建的类截图如下所示:
1.2、代码
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.OleDb;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace F_Data_test01
{
public class F_Data_T
{
public void Add(string sql,string str)
{
OleDbConnection odc = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + str);
try
{
if (odc.State == System.Data.ConnectionState.Closed)
{
//打开连接
odc.Open();
}
//创建命令
OleDbCommand oleDbCommand = new OleDbCommand(sql, odc);
//执行非查询的命令(增加,删除,修改)
oleDbCommand.ExecuteNonQuery();
if (odc.State == System.Data.ConnectionState.Open)
{
odc.Close();
}
}
catch (Exception ex)
{
//throw (ex);
//MessageBox.Show(ex.ToString());
throw new Exception ("异常原因为"+ex.ToString());
}
finally
{
odc.Close();
}
}
//查
public DataTable Sec(string sql, string str)
{
OleDbConnection odc = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + str);
DataTable dataTable = new DataTable();
try
{
if (odc.State == System.Data.ConnectionState.Closed)
{
odc.Open();
}
OleDbDataAdapter dbDataAdapter = new OleDbDataAdapter(sql, odc);
dbDataAdapter.Fill(dataTable);
if (odc.State == System.Data.ConnectionState.Open)
{
odc.Close();
}
return dataTable;
}
catch (Exception ex)
{
//throw (ex);
//MessageBox.Show(ex.ToString());
throw new Exception("异常原因为" + ex.ToString());
}
finally
{
odc.Close();
}
}
}
}
1.3、dll文件(F_Data_T的 封装类)
将创建的类F_Data_T生成解决方案后,在bin/Debug路径下找到.dll文件(在后面引用的时候引用该文件,该文件就是封装类)
如下图所示:
二、创建数据库和表
2.1、创建Access数据库
在bin/Debug路径下创建Test0424-1.accdb 数据库 ,如下所示:
2.2、创建表t_Students
创建表,并设计表,表结构如下所示
三、调用封装类
3.1、引用前面的封装类
点右键,添加引用,找到前面.dll文件添加上
成功引用封装类后显示如下所示:
3.2、窗体简单设计结构
3.3、代码
using F_Data_test01;
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 WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
string str = Application.StartupPath + "\\Date1\\Test0424-1.accdb";
DataTable date = new DataTable();
private void btnSle_Click(object sender, EventArgs e)
{
string sql = $"select * from t_Students";
F_Data_T f_Data_T = new F_Data_T();
date = f_Data_T.Sec(sql,str);
this.dataGridView1.DataSource = date;
}
private void btnAdd_Click(object sender, EventArgs e)
{
string t = DateTime.Now.ToString();
string sql = $"insert into t_Students(Sname,Sage,Sadress,DataTime) values('刘备',21,'成都','{t}')";
F_Data_T f_Data_T = new F_Data_T();
f_Data_T.Add(sql,str);
}
private void btnUpadate_Click(object sender, EventArgs e)
{
int rowsIndex = dataGridView1.CurrentRow.Index;
int id = Convert.ToInt32(dataGridView1.Rows[rowsIndex].Cells[0].Value);
string dataTime = DateTime.Now.ToString();
String sql = $"update t_Students set Sname ='修改' ,DataTime = '{dataTime}' where ID = {id}";
F_Data_T f_Data_T = new F_Data_T();
f_Data_T.Add(sql,str);
}
private void btnDelete_Click(object sender, EventArgs e)
{
int rowsIndex = dataGridView1.CurrentRow.Index;
int id = Convert.ToInt32(dataGridView1.Rows[rowsIndex].Cells[0].Value);
String sql = $"delete from t_Students where ID = {id}";
F_Data_T f_Data = new F_Data_T();
f_Data.Add(sql ,str);
}
}
}
四、效果展示