WPF應用Access數據庫


WPF應用Access數據庫

        現在Access數據庫中有表GuestTable,其中的字段如下圖所示,現在需要應用WPF技術為此表制作一個數據庫管理窗口,實現對此數據庫中的數據進行數據的增、刪、改和查操作。

     對數據的操作首先需要獲取對數據庫文件的連接,創建與數據庫連接的程序如下所示,其中“..//..//DataBase//InkColorMatchingDB.mdb”可以替換為自己項目中Access數據庫相對於Bin/Debug/**.exe可執行文件的相對路徑。

        private OleDbConnection GetConnection()
        {
            string strcon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=..//..//DataBase//InkColorMatchingDB.mdb;";
            OleDbConnection con = new OleDbConnection(strcon);
            return con;
        }

接下來應用所得到的對數據庫的連接來執行SQL語句增加條目的操作,如下程序所示。

 1                 try
 2                 {
 3                     OleDbConnection con = GetConnection();//獲得對數據庫的連接
 4                     con.Open();//打開數據庫連接
 5                     string judge = " SELECT COUNT(*) FROM GuestTable WHERE 公司名稱='" + guestName_TB.Text.ToString() + "';";//檢測是否已經存在所輸入的公司名稱
 6                     OleDbCommand judgecmd = new OleDbCommand(judge, con);//對數據庫執行SQL語句操作,並且獲得返回的結果
 7                     int rowNum = (int)judgecmd.ExecuteScalar();
 8                     if(rowNum==0)
 9                     {
10                         string insertstr = "INSERT INTO GuestTable(公司名稱, 地址,省,市, 郵編,國家,電話號碼,傳真號,聯系人,電子郵件) VALUES ('";
11                         insertstr += guestName_TB.Text.ToString() + "', '";
12                         insertstr += guestAddress_TB.Text.ToString() + "','";
13                         insertstr += guestProvince_TB.Text.ToString() + "','";
14                         insertstr += guestCity_TB.Text.ToString() + "','";
15                         insertstr += guestPostCode_TB.Text.ToString() + "','";
16                         insertstr += guestCountry_TB.Text.ToString() + "','";
17                         insertstr += guestPhoneNum_TB.Text.ToString() + "','";
18                         insertstr += guestFax_TB.Text.ToString() + "','";
19                         insertstr += guestContactPerson_TB.Text.ToString() + "','";
20                         insertstr += guestEmail_TB.Text.ToString() + "');";//整理插入數據的Sql語句
21                         OleDbCommand insertcmd = new OleDbCommand(insertstr, con);
22                         insertcmd.ExecuteNonQuery();
23                         con.Close();
24                     }
25                     else
26                     {
27                         throw new Exception("所輸入客戶名稱重復!");
28                     }
29                 }catch(Exception ex)
30                 {
31                     
32                     MessageBox.Show(ex.Message);
33                     return;
34                 }

刪除數據的操作如下:

 1                 try
 2                 {
 3                     //連接數據庫,獲取數據顯示在客戶列表中
 4                     OleDbConnection mycon = GetConnection();
 5                     mycon.Open();
 6                     string sql = "delete * from GuestTable where 公司名稱='" + name+"';";
 7                     OleDbCommand myCommand = new OleDbCommand(sql, mycon);
 8                     myCommand.ExecuteNonQuery(); 
 9                     mycon.Close();
10                 }
11                 catch (Exception ex)
12                 {
13                     throw (new Exception("刪除數據出現錯誤:" + ex.Message));
14                 }

       更新數據的操作如下(其中如this.guestName_TB.Text.ToString()者均為從界面上所獲得的用戶輸入的數值):

 1                 //用到了我前面寫的那個得到數據庫連接的函數
 2                 OleDbConnection conn = GetConnection(); //getConn():得到連接對象,
 3                 conn.Open();
 4                 //確定我們需要執行的SQL語句,本處是UPDATE語句!
 5                 sqlstr = "UPDATE GuestTable SET ";
 6                 sqlstr += "公司名稱='" + this.guestName_TB.Text.ToString() + "',";
 7                 sqlstr += "地址='" + this.guestAddress_TB.Text.ToString() + "',";
 8                 sqlstr += "省='" + this.guestProvince_TB.Text.ToString() + "',";
 9                 sqlstr += "市='" + this.guestCity_TB.Text.ToString() + "',";
10                 sqlstr += "郵編='" + this.guestPostCode_TB.Text.ToString() + "',";
11                 sqlstr += "國家='" + this.guestCountry_TB.Text.ToString() + "',";
12                 sqlstr += "電話號碼='" + this.guestPhoneNum_TB.Text.ToString() + "',";
13                 sqlstr += "傳真號='" + this.guestFax_TB.Text.ToString() + "',";
14                 sqlstr += "聯系人='" + this.guestContactPerson_TB.Text.ToString() + "',";
15                 sqlstr += "電子郵件='" + this.guestEmail_TB.Text.ToString() + "' ";
16                 sqlstr += " where 公司名稱='" + this.name+"';";
17                 //定義command對象,並執行相應的SQL語句
18                 OleDbCommand myCommand = new OleDbCommand(sqlstr, conn);
19                 myCommand.ExecuteNonQuery(); //執行非查詢語句
20                 conn.Close();

 如果需要查詢數據庫中的數據的話,則代碼如下:

            //獲取數據庫中的數據
            try
            {
                //連接數據庫,獲取數據顯示在客戶列表中
                OleDbConnection mycon = GetConnection();
                mycon.Open();
                string sql = "select * from GuestTable;";
                OleDbDataAdapter adapter = new OleDbDataAdapter();
                adapter.SelectCommand = new OleDbCommand(sql, mycon);
                adapter.Fill(guestData, "GuestTable");//其中guestData為DataSet類對象其中存儲查詢到的所有數據,“GuestTabel”為查詢所針對的數據表
                mycon.Close();
            }
            catch(Exception e)
            {
                throw (new Exception("讀取數據庫內的數據出錯:" + e.Message));
            }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM