Dotnet 的C#用SQL語句直接操作ACCESS的相關示例
- 2017-09-04 10:25:00
- 生活無限的BLOG 轉貼
- 4295
Dotnet 的C#用SQL語句直接操作ACCESS的相關示例
C#操作ACCESS的基本操作方法示例,主要給C#新手操控Access數(shù)據(jù)庫的入門
有這方面需要的網(wǎng)友可以參考一下,主要是對Access數(shù)據(jù)庫的增刪改查等操作
C#操作Access的具體代碼如下
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using ADOX; using System.Data.OleDb; using System.IO; namespace accesssql { public partial class access練習 : Form { public access練習() { InitializeComponent(); } private void 創(chuàng)建access_Click(object sender, EventArgs e) { //創(chuàng)建ACCESS文件需要ADOX,創(chuàng)建引用,導入COM中的Microsoft ADO Ext. 2.8 for DLL and Security,并using ADOX; FileInfo myfile = new FileInfo("sldb.mdb"); if (myfile.Exists) { MessageBox.Show("當前文件夾下已存在sldb.mdb文件,放棄創(chuàng)建"); } else { try { CatalogClass sldb = new CatalogClass(); sldb.Create("Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=sldb.mdb;" + "Jet OLEDB:Engine Type=5");//創(chuàng)建sldb.mdb sldb = null; MessageBox.Show("在程序文件夾下創(chuàng)建sldb.mdb成功。"); } catch (Exception ex) { MessageBox.Show(Convert.ToString(ex.Message)); } } } private void button1_Click(object sender, EventArgs e) { OleDbConnection sldb = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=sldb.mdb"); try { sldb.Open(); OleDbCommand cmd = new OleDbCommand(); cmd.Connection = sldb;//設置命令的對像是SLDB數(shù)據(jù)庫 //建表Folder,括號內(nèi)為:字段1 類型,字段2 類型,......(NOT NULL表示不能空) cmd.CommandText = "Create Table Folder (FolderID INT NOT NULL,SuperiorID INT,FolderGrade INT,FolderName TEXT(255),AllPathName TEXT(255))";//SQLCOMMAND語句 cmd.ExecuteNonQuery();//執(zhí)行SQLCMMAD MessageBox.Show("增加表Folder,表項FolderID SuperiorID FolderGrade FolderName成功"); } catch (Exception ex) { MessageBox.Show(Convert.ToString(ex.Message)); } finally { sldb.Close();sldb =null;} } private void button2_Click(object sender, EventArgs e) { //清除表格 //DROP TABLE "表格名" OleDbConnection sldb = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=sldb.mdb"); try { sldb.Open(); OleDbCommand cmd = new OleDbCommand(); cmd.Connection = sldb; cmd.CommandText = "DROP TABLE Folder";//SQLCOMMAND語句 cmd.ExecuteNonQuery();//執(zhí)行SQLCMMAD MessageBox.Show("刪除Folder表成功"); } catch (Exception ex) { MessageBox.Show(Convert.ToString(ex.Message)); } finally { sldb.Close(); sldb = null; } } private void button3_Click(object sender, EventArgs e) { //增加一條記錄 //INSERT INTO "表格名" ("欄位1", "欄位2", ...) VALUES ("值1", "值2", ...) OleDbConnection sldb = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=sldb.mdb"); try { sldb.Open(); OleDbCommand cmd = new OleDbCommand(); cmd.Connection = sldb; cmd.CommandText = "INSERT INTO Folder (FolderID,SuperiorID,FolderGrade,FolderName,AllPathName) VALUES (1001,2001,3001,'SLonline','SL1')";//SQLCOMMAND語句 cmd.ExecuteNonQuery();//執(zhí)行SQLCMMAD MessageBox.Show("增加表Folder內(nèi)記錄一條成功"); } catch (Exception ex) { MessageBox.Show(Convert.ToString(ex.Message)); } finally { sldb.Close();sldb =null;} } private void button4_Click(object sender, EventArgs e) { //修改某條記錄 //UPDATE "表格名" SET "欄位1" = [新值] WHERE {條件} OleDbConnection sldb = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=sldb.mdb"); try { sldb.Open(); OleDbCommand cmd = new OleDbCommand(); cmd.Connection = sldb; cmd.CommandText = "UPDATE Folder SET AllPathName = 'SL2' WHERE FolderID = 1001";//SQLCOMMAND語句 cmd.ExecuteNonQuery();//執(zhí)行SQLCMMAD MessageBox.Show("修改表Folder內(nèi)記錄一條成功"); } catch (Exception ex) { MessageBox.Show(Convert.ToString(ex.Message)); } finally { sldb.Close(); sldb = null; } } private void button5_Click(object sender, EventArgs e) { //刪除記錄 //DELETE FROM "表格名" WHERE {條件} //先添加一條記錄 OleDbConnection sldb = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=sldb.mdb"); try { sldb.Open(); OleDbCommand cmd = new OleDbCommand(); cmd.Connection = sldb; cmd.CommandText = "INSERT INTO Folder (FolderID,SuperiorID,FolderGrade,FolderName,AllPathName) VALUES (1003,2003,3003,'SLonline','SL3')";//SQLCOMMAND語句 cmd.ExecuteNonQuery();//執(zhí)行SQLCMMAD MessageBox.Show("增加表Folder內(nèi)記錄一條成功"); } catch (Exception ex) { MessageBox.Show(Convert.ToString(ex.Message)); } finally { sldb.Close();sldb =null;} //再把這條記錄刪除 OleDbConnection sldb1 = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=sldb.mdb"); try { sldb1.Open(); OleDbCommand cmd = new OleDbCommand(); cmd.Connection = sldb1; cmd.CommandText = "DELETE FROM Folder WHERE FolderID = 1001";//SQLCOMMAND語句 cmd.ExecuteNonQuery();//執(zhí)行SQLCMMAD MessageBox.Show("刪除FolderID o 1001的記錄成功"); } catch (Exception ex) { MessageBox.Show(Convert.ToString(ex.Message)); } finally { sldb1.Close(); sldb1 = null; } } private void button6_Click(object sender, EventArgs e) { //清除表格內(nèi)的所有信息 //DELETE * FROM 表1; OleDbConnection sldb = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=sldb.mdb"); try { sldb.Open(); OleDbCommand cmd = new OleDbCommand(); cmd.Connection = sldb; cmd.CommandText = "DELETE * FROM Folder";//SQLCOMMAND語句 cmd.ExecuteNonQuery();//執(zhí)行SQLCMMAD MessageBox.Show("清空表Folder內(nèi)記錄成功"); } catch (Exception ex) { MessageBox.Show(Convert.ToString(ex.Message)); } finally { sldb.Close(); sldb = null; } } private void button8_Click(object sender, EventArgs e) { if (File.Exists("sldb.mdb")) { try { File.Delete("sldb.mdb"); MessageBox.Show("文件sldb.mdb刪除成功。"); } catch (Exception ex) { MessageBox.Show(Convert.ToString(ex.Message)); } } else { MessageBox.Show("沒有找到sldb.mdb文件"); } } private void button7_Click(object sender, EventArgs e) { OleDbConnection sldb = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=sldb.mdb"); try { sldb.Open(); OleDbCommand cmd = new OleDbCommand(); cmd.Connection = sldb; cmd.CommandText = "SELECT COUNT(*) FROM Folder";//SQLCOMMAND語句 int number=(int)cmd.ExecuteScalar();//執(zhí)行SQLCMMAD,ExecuteScalar是反回一個行第一列的結果 MessageBox.Show("Folder表中共有" + Convert.ToString(number)); } catch (Exception ex) { MessageBox.Show(Convert.ToString(ex.Message)); } finally { sldb.Close(); sldb = null; } } private void button9_Click(object sender, EventArgs e) { OleDbConnection sldb = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=sldb.mdb"); try { sldb.Open(); OleDbCommand cmd = new OleDbCommand(); cmd.Connection = sldb; cmd.CommandText = "SELECT FolderGrade FROM Folder WHERE FolderID = 1001";//SQLCOMMAND語句 int number = (int)cmd.ExecuteScalar();//執(zhí)行SQLCMMAD,ExecuteScalar是反回一個行第一列的結果, MessageBox.Show("Folder表中FolderID為1001的記錄,F(xiàn)olderGrade項的值是:"+ Convert.ToString(number)); } catch (Exception ex) { MessageBox.Show(Convert.ToString(ex.Message)); } finally { sldb.Close(); sldb = null; } } private void button10_Click(object sender, EventArgs e) { //ALTER TABLE Cars ADD COLUMN Condition TEXT(10) //在表Cars內(nèi)增加一個字段,名字為Condition(狀況),長度為10 OleDbConnection sldb = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=sldb.mdb"); try { sldb.Open(); OleDbCommand cmd = new OleDbCommand(); cmd.Connection = sldb; cmd.CommandText = "ALTER TABLE Folder ADD COLUMN readme TEXT(255)";//SQLCOMMAND語句 cmd.ExecuteNonQuery();//執(zhí)行SQLCMMAD MessageBox.Show("Folder表中增加readme字段,文本型長度255"); } catch (Exception ex) { MessageBox.Show(Convert.ToString(ex.Message)); } finally { sldb.Close(); sldb = null; } } private void button11_Click(object sender, EventArgs e) { //ALTER TABLE Cars ADD COLUMN Condition TEXT(10) //在表Cars內(nèi)增加一個字段,名字為Condition(狀況),長度為10 OleDbConnection sldb = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=sldb.mdb"); try { sldb.Open(); OleDbCommand cmd = new OleDbCommand(); cmd.Connection = sldb; cmd.CommandText = "ALTER TABLE Folder DROP readme";//SQLCOMMAND語句 cmd.ExecuteNonQuery();//執(zhí)行SQLCMMAD MessageBox.Show("Folder表中刪除了readme字段"); } catch (Exception ex) { MessageBox.Show(Convert.ToString(ex.Message)); } finally { sldb.Close(); sldb = null; } } private void button13_Click(object sender, EventArgs e) { //除非用ADOX,ADO沒有直接改名方法,所以用復制表,然后再刪除舊表的方法。 //SELECT * INTO newtable FROM oldtable OleDbConnection sldb = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=sldb.mdb"); try { sldb.Open(); OleDbCommand cmd = new OleDbCommand(); cmd.Connection = sldb; cmd.CommandText = "SELECT * INTO File FROM Folder";//SQLCOMMAND語句 //如果只要某些字段過去:"SELECT FolderID,SuperiorID INTO File FROM folder" cmd.ExecuteNonQuery();//執(zhí)行SQLCMMAD cmd.CommandText = "DROP TABLE Folder";//SQLCOMMAND語句 cmd.ExecuteNonQuery();//執(zhí)行SQLCMMAD MessageBox.Show("將Folder表改名為File"); } catch (Exception ex) { MessageBox.Show(Convert.ToString(ex.Message)); } finally { sldb.Close(); sldb = null; } } } }
分享
Access數(shù)據(jù)庫自身
- office課程播放地址及課程明細
- Excel Word PPT Access VBA等Office技巧學習平臺
- 將( .accdb) 文件格式數(shù)據(jù)庫轉換為早期版本(.mdb)的文件格式
- 將早期的數(shù)據(jù)庫文件格式(.mdb)轉換為 (.accdb) 文件格式
- KB5002984:配置 Jet Red Database Engine 數(shù)據(jù)庫引擎和訪問連接引擎以阻止對遠程數(shù)據(jù)庫的訪問(remote table)
- Access 365 /Access 2019 數(shù)據(jù)庫中哪些函數(shù)功能和屬性被沙箱模式阻止(如未啟動宏時)
- Access Runtime(運行時)最全的下載(2007 2010 2013 2016 2019 Access 365)
Access Activex第三方控件
- Activex控件或Dll 在某些電腦無法正常注冊的解決辦法(regsvr32注冊時卡住)
- office使用部分控件時提示“您沒有使用該ActiveX控件許可的問題”的解決方法
- RTF文件(富文本格式)的一些解析
- Access樹控件(treeview) 64位Office下出現(xiàn)橫向滾動條不會自動定位的解決辦法
- Access中國樹控件 在win10電腦 節(jié)點行間距太小的解決辦法
- EXCEL 2019 64位版(Office 2019 64位)早就支持64位Treeview 樹控件 ListView列表等64位MSCOMMCTL.OCX控件下載
- VBA或VB6調用WebService(直接Post方式)并解析返回的XML
Access ADP Sql Server等
- 早期PB程序連接Sqlserver出現(xiàn)錯誤
- MMC 不能打開文件C:/Program Files/Microsoft SQL Server/80/Tools/Binn/SQL Server Enterprise Manager.MSC 可能是由于文件不存在,不是一個MMC控制臺,或者用后來的MMC版
- sql server連接不了的解決辦法
- localhost與127.0.0.1區(qū)別
- Roych的淺談數(shù)據(jù)庫開發(fā)系列(Sql Server)
- sqlserver 自動備份對備份目錄沒有存取權限的解決辦法
- 安裝Sql server 2005 express 和SQLServer2005 Express版企業(yè)管理器 SQLServer2005_SSMSEE
文章分類
聯(lián)系我們
聯(lián)系人: | 王先生 |
---|---|
Email: | 18449932@qq.com |
QQ: | 18449932 |
微博: | officecn01 |