最近使用C#对Access数据库进行操作,在网上找了许多例程,感觉还是太杂乱,所以想着自己写一个总结也方便大家共同学习进步。
功能:使用Access创建一个名为DatabaseStudent的数据库,使用C#连接数据库并利用datagridview控件将数据库内容显示出来。
这里DatabaseStudent数据库中有一个名为Student的表格,表如下图所示。
使用C#操作数据库记得加上
using System.IO;
using System.Data.OleDb;
using System.Data.SqlClient;
1.创建一个DatabaseOper的类,里面有对数据库进行基本操作的几个方法
使用时,在主函数中的构造函数下面声明一个oper实体
DatabaseOper opera =new DatabaseOper();
2.这里在DatabaseOper类中创建了一个连接函数
public OleDbConnection GetConnection()
{
OleDbConnection conn = null; //创建了一个连接体
string str = "Provider=Microsoft.Jet.Oledb.4.0;";
str += @"Data Source=D:\Database Study\DatabaseStudent.mdb";//连接字符串
try
{
conn = new OleDbConnection(str); //连接体实例化
}
catch (Exception ex)
{
throw ex;
}
return conn; //返回这个连接体
}
private void DataDisplay()
{
string sql = "select * from Student"; //查找表Stude中所有列
OleDbDataAdapter da = new OleDbDataAdapter(sql, conn);//实例化DataAdapter
DataSet ds = new DataSet();
da.Fill(ds, "Student"); //用da去填充空白的ds表格
DataTable dt = ds.Tables["Student"]; //生成一个名为Student表dt
dataGridView1.DataSource = dt;
}
这里面有很详细的解释,如果没时间看,我这里也总结一下。
DataSet是一个本地的虚拟数据库,它里面可以存放多张表格,类似于一个DataBase
使用DataSet第一步就是将OleDbDataAdapter返回的数据集(表)填充到DataSet对象中
DataTable相当于数据库中的一个表,将DataSet中某个表格赋值给DataTable
更具体的,大家多使用几次就能有深刻地体会了
4.在Show控件里调用上面两个方法就可以实现功能了
private void button1_Click(object sender, EventArgs e)
{
//OleDbConnection conn = new OleDbConnection();
conn = opera.GetConnection();
conn.Open();
try
{
DataDisplay();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
finally
{
conn.Close();
}
}
最后结果显示如下。
可以看到,ID并没有按照升序或者降序排列,解决这个问题只需要修改上面提及的DataDisplay方法
将下列代码更改
string sql = "select * from Student"; //查找表Stude中所有列
添加oder by语句,如下所示
string sql = "select * from Student order by [ID] ";
这样显示出来的表格就会按照ID的升序排列了