一、数据库连接与编程实现

1、创建Access数据库

1)打开Office Access新建一个空白数据库DATA.accdb,并改好存放位置。
2)根据自己需要建立一个新表,命名为表1;并在表内添加自己需要的列表数据。
3)保存数据库,也可另存为.mdb格式。

2.数据库与C#建立连接

1)打开Visual Studio,点击菜单栏中的工具选项卡,然后点击连接到数据库条目,跳转到添加连接。
在这里插入图片描述

2)进行数据库中选择并测试链接是否成功。
在这里插入图片描述

3)点击高级,复制该行代码,后面用,依次点击确定退出。
在这里插入图片描述

4)然后就可在服务器资源管理处看到导入的数据库。
在这里插入图片描述

3.编程实现数据库的读取

1)创建一个窗体应用项目,加入一个textbox、三个botton按键,以及和一个dataGridView窗口(具体位置在数据分类型下)。
在这里插入图片描述

2)代码部分

引用:增加以下引用

1
2
using System.Data;
using System.Data.OleDb;

具体程序,Form类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
public partial class FormDatabase : Form
{
// 连接字符串
private string connStr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\10234\Desktop\DATA.accdb";//此处为前面复制出来的代码

//声明
private OleDbConnection conn = null;
private OleDbDataAdapter adapter = null;
private DataTable dt = null;

public FormDatabase()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
// 连接数据库,需要传递连接字符串
conn = new OleDbConnection(connStr);
// 打开数据库连接
conn.Open();

// "Select * from 表1"为SQL语句,意思是从数据库中选择叫做“表1”的表,“conn”为连接
adapter = new OleDbDataAdapter("Select * from 表1", conn);
// CommandBuilder对应的是数据适配器,需要传递参数
var cmd = new OleDbCommandBuilder(adapter);

// 在内存中创建一个DataTable,用来存放、修改数据库表
dt = new DataTable();
// 通过适配器把表的数据填充到内存dt
adapter.Fill(dt);

// 把数据显示到界面
dataGridView1.DataSource = dt.DefaultView;
}

private void button2_Click(object sender, EventArgs e)
{
try
{
// 按下按钮后,把内存中修改的部分传递给适配器,再通过适配器传递给数据库
adapter.Update(dt);
// 清除内存中存放的表数据
dt.Clear();
// 重新读取已经改变过的表数据
adapter.Fill(dt);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{

}
}

private void button3_Click(object sender, EventArgs e)
{
string sql = textBox1.Text;
OleDbCommand comm = new OleDbCommand(sql, conn);
comm.ExecuteNonQuery();
}

private void FormDatabase_Load(object sender, EventArgs e)
{
textBox1.Text = "insert into 表1(工作时间,工作机位,摄像头编号,IP地址)values(2009/12/31,2,3,4)";
}
}

二、数据库的操作

输入的String指令为SQL语言,具体语法格式参考SQL语言规范即可

1、在数据库某一表中增加一行数据。

1
2
3
4
5
string sql = "insert into 表名(字段1,字段2,…)values(数据1,数据2,…)"; 
//字段指的是数据表的表头名,数据1为对应字段加入的数据,默认为double类型。
OleDbCommand comm = new OleDbCommand(sql, conn);
//cnn为前面读取的数据表名
comm.ExecuteNonQuery();

2、修改某一个数据的值

1
2
3
4
5
string sql = " update 表名 set 字段a = 222 where 字段b = 19"; 
//字段a指的是要修改的数据表头名,数据b为要修改数据对应的改行其他数据表头名,通过字段b对应的数据确定字段a所在的位置。
OleDbCommand comm = new OleDbCommand(sql, conn);
//cnn为前面读取的数据表名
comm.ExecuteNonQuery();

3.查找数据表中某一字段中的数据对应的那一行数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
         OleDbDataAdapter oleDapAdapter; //检索与填充数据,一般填充SQL语句  
DataSet ds = new DataSet(); //填充ds,保存数据
string sql = "select * from 表1 where ID = 18";
// select 列名称 from 表名 where 限定的数据表条件
//列名称可用*代替全部;
oleDapAdapter = new OleDbDataAdapter(sql, conn);
oleDapAdapter.Fill(ds);//将查到的数据放到数据表ds中;
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
for (int j = 0; j < ds.Tables[0].Columns.Count; j++)
{
MessageBox.Show(ds.Tables[0].Rows[i][j].ToString());//需要转成String类型
}
}
ds.Reset();

4.在数据库中创建新表

1
2
3
4
string dbstr = "CREATE TABLE 表2(ID INT,文件夹位置 char(255),文件名字 char(255))";
// CREATE TABLE 表名(ID INT,文件夹位置 char(255),文件名字 char(255))
OleDbCommand oleDbCom = new OleDbCommand(dbstr, conn);
oleDbCom.ExecuteNonQuery();