第一章 簡介
Access數(shù)據(jù)的優(yōu)點(diǎn):
1,存儲方式單一 Access管理的對象有表、查詢、窗體、報表、頁、宏和模塊,以上對象都存放在后綴為 .mdb 的數(shù)據(jù)庫文件中,便于用戶的操作和管理。
2,面向?qū)ο?br> 3,界面友好,易操作
4,輕量級,數(shù)據(jù)庫(.mdb)文件可以直接加載到C#項目文件里(個人認(rèn)為它最大的優(yōu)點(diǎn)就是這個)
連接Access數(shù)據(jù)庫的步驟和連接SQL Server Oracle MySql 數(shù)據(jù)庫的方式類似分為7 步:
1,新建OleDbConnection對象 并傳入連接字符串 獲得與數(shù)據(jù)庫的連接
OleDbConnection conn = new OleDbConnection("provider = microsoft.Jet.OLEDB.4.0;Data Source = D:\\Student.mdb");
2,使用OleDbConnection對象的實例conn 新建OleDbCommand對象
OleDbCommand comm = conn.CreateCommand();
3,通過OleDbCommand的實例comm傳入Sql語句
comm.CommandText = "select * from student";
4,打開連接
conn.Open();
5,調(diào)用實例comm的ExecuteReader()并保存在OleDbDataReader對象中
OleDbDataReader dr = comm.ExecuteReader();
dr 里面就是從數(shù)據(jù)庫查到的數(shù)據(jù) 可以對它進(jìn)行相關(guān)的操作
6,釋放資源
conn.Dispose();
7,關(guān)閉連接
conn.Close();
第二章 C#與ACCESS的交互操作
第一節(jié) 利用C#創(chuàng)建一個ACCESS數(shù)據(jù)庫文件
A.mdb文件是原來沒有的,程序需要創(chuàng)建一個然后往里面寫數(shù)據(jù)!
1.新建工程 —進(jìn)入解決方案->引用->添加引用 —選擇com標(biāo)簽下的“Microsoft ADO Ext. 2.8 for DDL and Security”—點(diǎn)擊OK
2.添加引用:using ADOX;
3.用ADOX創(chuàng)建access數(shù)據(jù)庫
ADOX.Catalog catalog = new Catalog();
catalog.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb;Jet");
這時在運(yùn)行在debug文件夾下就可以看到這個mdb了。
其實何必要創(chuàng)建呢,我每次都是建一個空白的mdb文件,需要的時候再拷貝一下就可以啦。
第二節(jié) C#在MDB文件中創(chuàng)建表
生成表NewTable,該表有文本字段Field1和整型字段Field2
string conStr = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = test.mdb";
OleDbConnection conn = new OleDbConnection(conStr);
string dbstr = "CREATE TABLE NewTable(Field1 TEXT, Field2 INTEGER)";
OleDbCommand oleDbCom = new OleDbCommand(dbstr, conn);
conn.Open();
oleDbCom.ExecuteNonQuery();
conn.Close();
第三節(jié) 顯示數(shù)據(jù)庫中表格內(nèi)容
數(shù)據(jù)流:
數(shù)據(jù)庫—創(chuàng)建DataAdapter實例就建立好了和數(shù)據(jù)庫的關(guān)聯(lián)——通過DataAdapter實例的Fill指令將數(shù)據(jù)填充到Dataset——選擇Dataset中的表格添加到DataTable——將表格填充到dataGridView1.DataSource。
開始前::先建立一個數(shù)據(jù)庫test.mdb,在其中建立表格NewTable,表格中自己添加一些內(nèi)容;
public void viewAccessInfo()
{
//【1】連接數(shù)據(jù)庫
string connect_str = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb";
OleDbConnection thisConnection = new OleDbConnection(connect_str);
//【2】編寫SQL指令,星號(*)是選取所有列的快捷方式。
string sql = "select * from NewTable";
//OleDbDataAdapter是 DataSet 和數(shù)據(jù)源之間的橋梁,用于檢索和保存數(shù)據(jù)。
OleDbDataAdapter thisAdapter = new OleDbDataAdapter(sql, thisConnection);
//DataSet可以理解成在應(yīng)用程序中的數(shù)據(jù)庫
DataSet thisDataSet = new System.Data.DataSet();
//使用 Fill 將數(shù)據(jù)從數(shù)據(jù)源加載到 DataSet 中
thisAdapter.Fill(thisDataSet, "table");
//DataTable可以理解成DataSet的一個表格;將table中的表格內(nèi)容添加到datatable
DataTable dt = thisDataSet.Tables["table"];
//將數(shù)據(jù)表和dataGridView1進(jìn)行綁定
dataGridView1.DataSource = dt;
//關(guān)閉連接
thisConnection.Close();
}
運(yùn)行效果如下:
1,將DataGridView控件的界面大小隨著我們顯示的內(nèi)容變化而變化。只要設(shè)置AutoSizeCloumnsMode這個屬性,將它的屬性值設(shè)為Fill就可以了。
2,有些時候我們想讓DataGridView控件的大小隨著窗體或者是頁面的大小變化而變化,兩個方法分別是:
(1)設(shè)置DataGridView的屬性Anchor的值為上下左右就可以了。
(2)設(shè)置Dock屬性為Fill,就是將DataGridView填滿整個窗體或者是頁面。
運(yùn)行效果如下:
第四節(jié) 表格中內(nèi)容更新到數(shù)據(jù)庫
數(shù)據(jù)流:
將數(shù)據(jù)表在datagridview中顯示出來——將dataGridView1.DataSource轉(zhuǎn)換成表格形式——通過OleDbCommandBuilder選取需要添加的數(shù)據(jù)庫表格和連接,與前面的OleDbDataAdapter對象關(guān)聯(lián)——通過adp.Update完成更新。
實現(xiàn)步驟如下:
1. 建立數(shù)據(jù)庫連接
2. 實例化OleDbDataAdapter對象!
3. 建立一個DataSet對象,并把執(zhí)行select語句得到的記錄添加到其中
4.建立OleDbCommandBuilder對象!并讓它與我們前面的OleDbDataAdapter對象關(guān)聯(lián)
5. 對DataSet中包含表的特定記錄進(jìn)行增加、刪除、修改
6. 執(zhí)行OleDbDataAdapter對象的Update命令更新數(shù)據(jù)庫
7. 關(guān)閉數(shù)據(jù)庫連接
private void Form1_Load(object sender, EventArgs e)
{
//viewAccessInfo();//顯示數(shù)據(jù)庫文件的內(nèi)容到畫面
DateToAccess();
}
public void DateToAccess()
{
string str = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb";
OleDbConnection conn = new OleDbConnection(str);
adp = new OleDbDataAdapter("select * from NewTable", conn);
DataTable dt = new DataTable();
adp.Fill(dt);
dataGridView1.DataSource = dt;
}
private void button1_Click(object sender, EventArgs e)
{
var dt = (DataTable)dataGridView1.DataSource;
OleDbCommandBuilder cmdb = new OleDbCommandBuilder(adp);
adp.Update(dt);
}
注意事項:
1.不含主鍵字段,執(zhí)行Select語句沒有任何問題,但數(shù)據(jù)庫無法執(zhí)行Insert、Update和Delete語句。若要對顯示出來的數(shù)據(jù)進(jìn)行修改并更新數(shù)據(jù)庫,務(wù)必把數(shù)據(jù)庫表格的主鍵(Primary Key)帶上。
2.OleDbCommand屬于DBcommand(還包括odbcCommand\OracleCommand\SqlCommand)類派生,DBcommand的作用是:當(dāng)建立與數(shù)據(jù)源的連接后,可以使用 DBCommand 對象來執(zhí)行命令并從數(shù)據(jù)源中返回結(jié)果;
3.DataAdapter 用于從數(shù)據(jù)源檢索數(shù)據(jù)并填充 DataSet 中的表。DataAdapter 還將對 DataSet 的更改解析回數(shù)據(jù)源。DataAdapter 使用 .NET Framework 數(shù)據(jù)提供程序的 Connection 對象連接到數(shù)據(jù)源,并使用 Command 對象從數(shù)據(jù)源檢索數(shù)據(jù)以及將更改解析回數(shù)據(jù)源。
4.OleDbCommandBuilder就是相當(dāng)于updatecommand,但是它是自動調(diào)用的。文章來源:http://www.zghlxwxcb.cn/news/detail-440277.html
第三章 SQL基礎(chǔ)教程
單擊打開教程鏈接文章來源地址http://www.zghlxwxcb.cn/news/detail-440277.html
持續(xù)更新中。。。。。。。。
到了這里,關(guān)于C#操作Access數(shù)據(jù)庫的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!