C#操作Access數(shù)據(jù)庫(kù)的實(shí)現(xiàn)過(guò)程(vs2019)
C#操作Access數(shù)據(jù)庫(kù)(vs2019)
一、數(shù)據(jù)庫(kù)連接與編程實(shí)現(xiàn)
1、創(chuàng)建Access數(shù)據(jù)庫(kù)
1)打開(kāi)Office Access新建一個(gè)空白數(shù)據(jù)庫(kù)DATA.accdb,并改好存放位置。
2)根據(jù)自己需要建立一個(gè)新表,命名為表1;并在表內(nèi)添加自己需要的列表數(shù)據(jù)。
3)保存數(shù)據(jù)庫(kù),也可另存為.mdb格式。
2.數(shù)據(jù)庫(kù)與C#建立連接
1)打開(kāi)Visual Studio,點(diǎn)擊菜單欄中的工具選項(xiàng)卡,然后點(diǎn)擊連接到數(shù)據(jù)庫(kù)條目,跳轉(zhuǎn)到添加連接。
2)進(jìn)行數(shù)據(jù)庫(kù)中選擇并測(cè)試鏈接是否成功。
3)點(diǎn)擊高級(jí),復(fù)制該行代碼,后面用,依次點(diǎn)擊確定退出。
4)然后就可在服務(wù)器資源管理處看到導(dǎo)入的數(shù)據(jù)庫(kù)。
3.編程實(shí)現(xiàn)數(shù)據(jù)庫(kù)的讀取
1)創(chuàng)建一個(gè)窗體應(yīng)用項(xiàng)目,加入一個(gè)textbox、三個(gè)botton按鍵,以及和一個(gè)dataGridView窗口(具體位置在數(shù)據(jù)分類(lèi)型下)。
2)代碼部分
引用:增加以下引用
using System.Data; using System.Data.OleDb;
具體程序,F(xiàn)orm類(lèi)
public partial class FormDatabase : Form { // 連接字符串 private string connStr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\10234\Desktop\DATA.accdb";//此處為前面復(fù)制出來(lái)的代碼 //聲明 private OleDbConnection conn = null; private OleDbDataAdapter adapter = null; private DataTable dt = null; public FormDatabase() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { // 連接數(shù)據(jù)庫(kù),需要傳遞連接字符串 conn = new OleDbConnection(connStr); // 打開(kāi)數(shù)據(jù)庫(kù)連接 conn.Open(); // "Select * from 表1"為SQL語(yǔ)句,意思是從數(shù)據(jù)庫(kù)中選擇叫做“表1”的表,“conn”為連接 adapter = new OleDbDataAdapter("Select * from 表1", conn); // CommandBuilder對(duì)應(yīng)的是數(shù)據(jù)適配器,需要傳遞參數(shù) var cmd = new OleDbCommandBuilder(adapter); // 在內(nèi)存中創(chuàng)建一個(gè)DataTable,用來(lái)存放、修改數(shù)據(jù)庫(kù)表 dt = new DataTable(); // 通過(guò)適配器把表的數(shù)據(jù)填充到內(nèi)存dt adapter.Fill(dt); // 把數(shù)據(jù)顯示到界面 dataGridView1.DataSource = dt.DefaultView; } private void button2_Click(object sender, EventArgs e) { try { // 按下按鈕后,把內(nèi)存中修改的部分傳遞給適配器,再通過(guò)適配器傳遞給數(shù)據(jù)庫(kù) adapter.Update(dt); // 清除內(nèi)存中存放的表數(shù)據(jù) dt.Clear(); // 重新讀取已經(jīng)改變過(guò)的表數(shù)據(jù) 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(工作時(shí)間,工作機(jī)位,攝像頭編號(hào),IP地址)values(2009/12/31,2,3,4)"; } }
二、數(shù)據(jù)庫(kù)的操作
輸入的String指令為SQL語(yǔ)言,具體語(yǔ)法格式參考SQL語(yǔ)言規(guī)范即可
1、在數(shù)據(jù)庫(kù)某一表中增加一行數(shù)據(jù)。
string sql = "insert into 表名(字段1,字段2,…)values(數(shù)據(jù)1,數(shù)據(jù)2,…)"; //字段指的是數(shù)據(jù)表的表頭名,數(shù)據(jù)1為對(duì)應(yīng)字段加入的數(shù)據(jù),默認(rèn)為double類(lèi)型。 OleDbCommand comm = new OleDbCommand(sql, conn); //cnn為前面讀取的數(shù)據(jù)表名 comm.ExecuteNonQuery();
2、修改某一個(gè)數(shù)據(jù)的值
string sql = " update 表名 set 字段a = 222 where 字段b = 19"; //字段a指的是要修改的數(shù)據(jù)表頭名,數(shù)據(jù)b為要修改數(shù)據(jù)對(duì)應(yīng)的改行其他數(shù)據(jù)表頭名,通過(guò)字段b對(duì)應(yīng)的數(shù)據(jù)確定字段a所在的位置。 OleDbCommand comm = new OleDbCommand(sql, conn); //cnn為前面讀取的數(shù)據(jù)表名 comm.ExecuteNonQuery();
3.查找數(shù)據(jù)表中某一字段中的數(shù)據(jù)對(duì)應(yīng)的那一行數(shù)據(jù)
OleDbDataAdapter oleDapAdapter; //檢索與填充數(shù)據(jù),一般填充SQL語(yǔ)句 DataSet ds = new DataSet(); //填充ds,保存數(shù)據(jù) string sql = "select * from 表1 where ID = 18"; // select 列名稱(chēng) from 表名 where 限定的數(shù)據(jù)表?xiàng)l件 //列名稱(chēng)可用*代替全部; oleDapAdapter = new OleDbDataAdapter(sql, conn); oleDapAdapter.Fill(ds);//將查到的數(shù)據(jù)放到數(shù)據(jù)表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());//需要轉(zhuǎn)成String類(lèi)型 } } ds.Reset();
4.在數(shù)據(jù)庫(kù)中創(chuàng)建新表
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();
到此這篇關(guān)于C#操作Access數(shù)據(jù)庫(kù)(vs2019)的文章就介紹到這了,更多相關(guān)C# Access數(shù)據(jù)庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- C#使用Oracle.ManagedDataAccess.dll組件連接Oracle數(shù)據(jù)庫(kù)
- C# 操作 access 數(shù)據(jù)庫(kù)的實(shí)例代碼
- c# 使用Entity Framework操作Access數(shù)據(jù)庫(kù)的示例
- C#連接Oracle數(shù)據(jù)庫(kù)使用Oracle.ManagedDataAccess.dll
- C#實(shí)現(xiàn)的ACCESS數(shù)據(jù)庫(kù)操作類(lèi)完整實(shí)例
- C#編程實(shí)現(xiàn)連接ACCESS數(shù)據(jù)庫(kù)實(shí)例詳解
- C#動(dòng)態(tài)創(chuàng)建Access數(shù)據(jù)庫(kù)及表的方法
- c#連接access數(shù)據(jù)庫(kù)操作類(lèi)分享
- C# Access數(shù)據(jù)庫(kù)增刪查改的簡(jiǎn)單方法
相關(guān)文章
C# Winform程序?qū)崿F(xiàn)防止多開(kāi)的方法總結(jié)【親測(cè)】
這篇文章主要介紹了C# Winform程序?qū)崿F(xiàn)防止多開(kāi)的方法,結(jié)合實(shí)例形式總結(jié)分析了C# Winform防止多開(kāi)相關(guān)操作技巧與使用注意事項(xiàng),需要的朋友可以參考下2020-03-03C# 如何實(shí)現(xiàn)一個(gè)帶通知的List<T>
這篇文章主要介紹了C# 如何實(shí)現(xiàn)一個(gè)帶通知的List<T>,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下2021-02-02C#實(shí)現(xiàn)IDbConnection/IDbCommand等相關(guān)通用數(shù)據(jù)接口
ADO.NET?中的數(shù)據(jù)提供者對(duì)象提供了IDbConnection、IDbCommand、IDbDataParameter等通用數(shù)據(jù)接口,本文將利用這些對(duì)象實(shí)現(xiàn)一個(gè)通用方法以訪問(wèn)和操作數(shù)據(jù)庫(kù)內(nèi)容,需要的朋友可以參考下2024-04-04C#集成DeepSeek模型實(shí)現(xiàn)AI私有化的流程步驟(本地部署與API調(diào)用教程)
本文主要介紹了C#集成DeepSeek模型實(shí)現(xiàn)AI私有化的方法,包括搭建基礎(chǔ)環(huán)境,如安裝Ollama和下載DeepSeek?R1模型,客戶(hù)端?ChatBox?AI?接入?DeepSeek?的步驟,以及?C#?調(diào)用?DeepSeek?API?的示例代碼,并總結(jié)了其在實(shí)際項(xiàng)目中的應(yīng)用價(jià)值,需要的朋友可以參考下2025-03-03