1. 程式人生 > >C#訪問MySQL資料庫(winform+EF)

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

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

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

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

2、連線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不會自動增長的,需要注意一下,我們主要是為了備份表的資料。

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

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

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

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

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

參考介紹:

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

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

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

4、檢視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生成的實體吧,做一個簡單的登入頁面和系統主頁。

5、登入頁面的實現

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下載地址:

以後將繼續學習MYSQL資料庫,另外個人在研究C#  Mono for安卓,有興趣的友友可以一起討論,互勉!

相關推薦

C#訪問MySQL資料庫winform+EF

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

C++連線MySQL資料庫利用API

一般C/C++與資料庫相連有兩種方法。 利用ODBC,ADO,或者JDBC 用ODBC,ADO,JDBC等這些介面,利用裡面的方法來進行與資料庫的連線,簡化對資料庫的操作,方便對資料庫進行管理。 介面的區別可以參考以下文章 不過注意的是C/C++

JDBC驅動直接訪問MySQL資料庫純Java驅動程式

       純Java驅動方式由JDBC驅動直接訪問資料庫,驅動程式完全由Java語言編寫,執行速度快,而且具備了跨平臺的特點。使用純Java驅動方式進行資料庫連線,首先需要下載資料庫廠商提供的驅動程式JAR包,並將JAR包引入工程中。本示例使用的資料庫是MySQL 5.5

centos下 c++連線mysql資料庫

程式碼:http://download.csdn.net/detail/chuanyu/9674720 一開始真是各種坑 安裝了mysql-server    , mysql-client,   mysql-devel 查找了mysql的位置 :locate  mysql

jdbc連線mysql資料庫或oracle驗證通過,並操作資料庫

1.連線資料庫其實很簡單,直接粘程式碼,首先我們先複製mysql的jar包 2.再建立資料庫連線資訊檔案,寫入檔案,DRIVER可以照抄,URL是本地的資料庫資訊,如果是伺服器的資料庫可以將localhsot改成伺服器Ip,使用者名稱和密碼是資料庫的。 3.建立一個db類,第一個

MySQL資料庫十二2018.11.16

可以通過order by對查詢結果進行排序:升序和降序 order by 欄位名稱 asci|desc; 這個功能也是很常用的,比如我們在商城中按照價格對商品進行一個排序。 想實現這樣一個排序功能,就可以通過order by來進行一個排序 #測試排序 #按照id降序排序 SELECT

MySQL資料庫十一__2018.11.15

我們已經看到了,where條件可以篩選我們的記錄,符合要求的記錄,接下來還可以加上另外一個group by它呢是對我們的記錄做一個分組。 我們可以看到,我們可以按照欄位分組也可以按照欄位的位置進行分組。 GROUP BY分組:它是把記錄值相同的放到一個組裡,最終的查詢出的結果只會顯示組中的一

Eclipse連線MySQL資料庫詳細步驟

本人在寫這篇部落格的時候也是菜鳥一隻,百度“Java連線mysql資料庫、eclipse連線資料庫”等文章一大堆,可總是報錯。 下面的操作是經本人驗證,確實可行,包括了jar包匯入、用jdbc連線my

C# 訪問修飾符五種

private 在當前類中使用 protected 在當前類和所有繼承的子類中使用 internal 在當前程式集中的使用 protected internal  同時具備protected和internal的訪問許可權 public 公開的訪問許可權 1、類中的成

通過SSH祕鑰登入線上MySQL資料庫基於Navicat

前言 生產環境的資料庫往往需要經過嚴格的安全限制,所以禁用密碼登入,使用祕鑰的方式是一種相對安全的登入方式。 原理: 角色: 主機A:其他主機,有訪問線上資料庫的許可權 主機B:線上資料庫的主機 主機C:本機電腦,無訪問線上資料庫的許可權 在本機C上(無訪問B的許可權),通過ssh配置的主機A(有訪

Java設計的銀行取款系統-Mysql資料庫改進篇2017/7/16

前言 這是前一篇http://blog.csdn.net/u011958281/article/details/73499642博文,沒有想到會有那麼多讀者,初次編寫,為了實現功能,犧牲了很多,最近經過一輪學習,有了一點新的想法,結合學習,特此分享ATM加

MYSQL資料庫十二- 新增表關係join、insert...select、create ...select多表更新

目錄 資料準備 一、單表寫入,insert…select 案例:獲取goods的分類,寫入到新的資料表 二、多表更新、表關係join 案例一:我們使用內連結,連結goods資料表和goods_two資料表,然後修改goods_cat

C#訪問MySQL資料庫幫助類

轉載地址:http://www.cnblogs.com/JiYF/p/6572614.html MySQL資料庫訪問幫助類 1.專案新增引用官方MySQL動態庫MySql.Data.dll 專案新增引用 2.web.config配置資料庫連線字串 <?x

VS2015 C#訪問MySQL資料庫

VS2015 C#連線MySQL 一、工具安裝; 安裝 MySQL For Windows,這個不多說,上官網下載; 安裝mysql-connector-net,這個是MySQL

Qt4.8.7連線MySql資料庫windows環境

1.軟體準備 qt-opensource-windows-x86-mingw482-4.8.7.exe Qt4的最後一個版本,bug應該是最少的,其他版本也類似。官方下載連結(329M)mysql-

nodeJS連結mysql資料庫express框架

1.nodeJS需要連結mysql,首先需要匯入mysql模組,這樣nodeJS才能呼叫mysql 2.匯入mysql包命令 dos視窗下,進入建立的express專案資料夾下, npm install mysql 然後會發現,我

Eclipse連線MySQL資料庫傻瓜篇

本來不想寫這麼簡單人文章,在百度上搜索我這個標題,完全符合標題的一大堆。但我按照那些文章搗鼓了很久,就是不行。 我的環境:MySQL:mysql-essential-5.1.51-win32      Eclipse:任意版本,免費的,可以百度的到。     

deepin(linux)環境下安裝mysql資料庫新手入門

環境:deepin15.5 1.開啟終端,輸入命令:sudo apt-get update   更新軟體列表 2.輸入命令:sudo apt-get install mysql-server     安裝MySQL資料庫程式 中間會彈出設定root使用者密碼的輸入框,輸

mysql的安裝、C++訪問mysql資料庫、編碼設定問題

一.mysql的安裝,這個相對簡單,直接去官網下載mysql安裝程式,就可以完成安裝過程,網上有很多安裝教程,這個沒什麼注意事項。 二、C++訪問mysql,主要是用到mysql定義的標頭檔案,內部定義了各種資料結構和函式,比如MYSQL,MYSQL_RES,MYSQL_

連線mysql資料庫外網連線問題

命令解釋:*.*          第一個*表示庫,第二個*表示表; *.*對全部資料庫的全部表授權,so.ok 表示只對so這個庫中的ok表授權root        表示要給哪個使用者授權,這個使用者可以是存在的使用者,也可以是不存在的'%'          表示允許遠端連線的IP地址,%代表允許所有I