C#訪問MySQL資料庫(winform+EF)?

以前都是C#連線SQLServer,現在MySQL也比較火了,而且是開源跨平臺的,這裡連線使用一下,主要是體會一下整個流程,這裡使用的是winform 訪問MYSQL,當然使用winfrom,還是wfp,以及其他的技術這裡不討論,個人覺得這個比較上手快。

工具/原料

VS2013,MYSQL資料庫,SqlDbx

安裝MYSQl資料庫

1、安裝MYSQl資料庫,這裡略過,可以參考此文件進行安裝。

/shuma/2098667uls.html

此文件已經比較細緻了,安裝並不複雜,主要是下一步下一步就行了,要回基本的配置,這裡我的資料庫使用者名稱還是sa(建議自己建立一個使用者),root的使用者名稱和密碼我們這裡暫不使用。

連線MYSQL資料庫,可以採用自帶的MySQL Workbench 6.2 CE工具,

登入後就可以進行建表等操作了,這裡我建立一個數據庫名稱為MY_OA的資料庫,我們直接使用SQL語句執行並建立資料庫然後重新整理列表就可以檢視到我們建立的資料庫了

如圖(1)(2)(3)(4)對應的步驟,另外建立了資料庫後還需要建立幾張表來儲存資料,這些都是基礎的和SQLserver大同小異的。

指令碼如下:

1 CREATE database My_OA

2

3 CREATE TABLE my_oa.sys_user

4 (

5 id INT not NULL AUTO_INCREMENT PRIMARY KEY,

6 userName varchar(32),

7 pwd varchar(32)

8

9 );

當然也可以使用圖形介面來配置,直接滑鼠右鍵來建表,主要是看個人的習慣了,熟悉的話直接SQL句會方便很多也比較快,

這裡我們快速的插入三條資料,便於以後測試使用,因為ID是自增的,所以可以不用管,插入後你會發現ID已經自己有了,只是MYSQL中AUTO_INCREMENT和SQLSEVE的identity的區別

1 INSERT INTO sys_user(userName,pwd) VALUES('51diysoft','123');

2

3 INSERT INTO sys_user (userName,pwd) VALUES('xmd','123');

4

5 INSERT INTO sys_user (userName,pwd) VALUES('hjk','123');

當然說道這裡我們還可以使用VS2013來連線MYSQL資料庫,因為後邊的EF框架要訪問,肯定也能購連線吧,

我們開啟VS的【檢視】【伺服器資源】,點到【資料庫連線】右鍵新增“資料庫”,然後就和正常連線SQLServer的步驟一樣了

此處選擇MYSQL就行了,正常情況下安裝MYSQL的時候就會把VS對應的連線驅動等相關內容直接加入的,不用去手動加的,當然看到這裡也是可以連線Oracel資料庫的,紅線標記的地方,道理類似。

下邊需要伺服器的地址,使用者名稱和密碼,最好測試能夠連線通過,我這裡是sa使用者(注意不是預設的),是自己建立的一個使用者,預設的是root,如果需要root來登入伺服器的話必須在安裝MYSQL的時候注意勾選,否則就要新建一個使用者來操作。

這裡資料已經有了,另外我們還可以使用SQLdbx、Navicat_Premium_11.0.10等資料庫的客戶端工具來連線,這工具智慧提示比較強,而且體積小便於攜帶和維護

下面我們就以SQLdbx為例,講解一下如何連線資料庫,其實都是一樣的連線,如下:

SQldbx的下載地址和本次的SQl指令碼例子可以到百度雲下載:

第一步:

需要選擇連線的資料庫型別(MYSQL),這裡也是可以連線其他型別資料庫的,自己看吧,也可以試試

第二步:

也是輸入使用者名稱和密碼連線就行了。

資料庫可以為空,等登陸後在選擇資料庫也可以。

另外我們對比一下資料庫表的複製,SQLServer我們直接可以這樣複製(在select * from 表)的中間加入一個into 新表:

SELECT * INTO sys_user3 FROM sys_user

而在MYSQL中我們直接這樣寫是報錯的:只有傳統的建表再導資料了,比如

CREATE TABLE test

(

SELECT * FROM sys_user

)

,二期預設生成的這個id不會自動增長的,需要注意一下,我們主要是為了備份表的資料。

不同的資料庫肯定有些小區別,慢慢研究吧。

C#訪問MySQL資料庫(winform+EF)

訪問MySQL資料庫(winform+EF)#

C#訪問MySQL資料庫(winform+EF)

訪問MySQL資料庫(winform+EF)#

C#訪問MySQL資料庫(winform+EF)

訪問MySQL資料庫(winform+EF)#

C#訪問MySQL資料庫(winform+EF)

訪問MySQL資料庫(winform+EF)#

C#訪問MySQL資料庫(winform+EF)

訪問MySQL資料庫(winform+EF)#

C#訪問MySQL資料庫(winform+EF)

訪問MySQL資料庫(winform+EF)#

C#訪問MySQL資料庫(winform+EF)

訪問MySQL資料庫(winform+EF)#

C#訪問MySQL資料庫(winform+EF)

訪問MySQL資料庫(winform+EF)#

C#訪問MySQL資料庫(winform+EF)

訪問MySQL資料庫(winform+EF)#

C#訪問MySQL資料庫(winform+EF)

訪問MySQL資料庫(winform+EF)#

C#訪問MySQL資料庫(winform+EF)

訪問MySQL資料庫(winform+EF)#

C#訪問MySQL資料庫(winform+EF)

訪問MySQL資料庫(winform+EF)#

C#訪問MySQL資料庫(winform+EF)

訪問MySQL資料庫(winform+EF)#

C#訪問MySQL資料庫(winform+EF)

訪問MySQL資料庫(winform+EF)#

如何使用VS2013建立MYSQL的專案(這裡講winform吧)

上邊講的有點多了,趕緊的

(1)、VS【檔案】=》【新建】=》【專案】略過,注意選擇對應的專案型別預設有winform和asp .net的自己選擇,另外我們還需要選擇EF的版本,

如何對Entity Framework沒啥感覺沒關係,簡單來說就是微軟幫你連線了資料庫的是一個實體框架,讓你操作起來比較方便,不用單獨去寫SQLhelper並能和linq語句lamda表示式等結合起來,提高開發效率,這個是比較實用的。

參考介紹:

另外還要說明的是EF的版本,我這裡使用的是EF6,可以通過nuget工具包管理來獲得最新版本

以下是建立VS專案的步驟截圖:

以上步驟首先是新建一個MYSQL的連線,然後選擇對應的表生成對應的EF實體框架,這樣一個EF的winform專案基本就建立好了。

C#訪問MySQL資料庫(winform+EF)

訪問MySQL資料庫(winform+EF)#

C#訪問MySQL資料庫(winform+EF)

訪問MySQL資料庫(winform+EF)#

C#訪問MySQL資料庫(winform+EF)

訪問MySQL資料庫(winform+EF)#

C#訪問MySQL資料庫(winform+EF)

訪問MySQL資料庫(winform+EF)#

C#訪問MySQL資料庫(winform+EF)

訪問MySQL資料庫(winform+EF)#

C#訪問MySQL資料庫(winform+EF)

訪問MySQL資料庫(winform+EF)#

C#訪問MySQL資料庫(winform+EF)

訪問MySQL資料庫(winform+EF)#

檢視winfrom專案結構

檢視winfrom專案結構

開啟對應的*.tt檔案,這些就是EF自動生成的連線資料庫後的相關實體類,就不用自己去建立類了(必要時需要自己建立Vew_Sys_User)

namespace MySql_Windows_Forms_Project2

{

using System;

using System.Collections.Generic;

public partial class sys_user

{

public int id { get; set; }

public string userName { get; set; }

public string pwd { get; set; }

}

}

然後我們還是呼叫一下EF生成的實體吧,做一個簡單的登入頁面和系統主頁。

登入頁面的實現

winform如何製作登入頁面,基本流程就是拖動幾個lable和textbox,並設定基本的屬性,比如密碼框為星號,視窗的起始位置為CenterScreen,是否最小化等等

我們就大概看一下程式碼吧,很簡單的,使用的部分Linq的查詢,結合EF框架操作,比較方便

(主要是體會流程,沒有任何美化)

1 // 獲取輸入的使用者名稱和密碼

2 using (MyOAModelEntities db = new MyOAModelEntities())

3 {

4 string strUserName = txtUserName.Text.Trim();

5 string strPwd = txtPwd.Text.Trim();

6 //查詢資料庫中的記錄

7 var userinfo = (from m in db.sys_user

8 where m.userName == strUserName && m.pwd == strPwd

9 select m).FirstOrDefault();

12 if (userinfo != null)

13 {

14 CurrentUserInfo = userinfo;//標記全域性的使用者 方便其他地方使用

15 // MessageBox.Show("登入成功!");

16 this.Hide();

17 MainWindow m = new MainWindow();

18 m.ShowDialog();

19 }

20 else

21 {

22 MessageBox.Show("使用者名稱或者密碼錯誤!");

23 }

Code下載地址:

C#訪問MySQL資料庫(winform+EF)

訪問MySQL資料庫(winform+EF)#

流程, 個人, 資料庫,
相關問題答案