winform 云mysql_C#访问MySQL数据库(winform+EF)

本文介绍了如何使用C#的Winform应用程序结合Entity Framework(EF)访问MySQL数据库。从安装MySQL数据库到创建数据库和表,再到在VS2013中建立Winform项目和使用EF生成实体框架,最后展示了简单的登录页面实现。通过实例演示了C#连接和操作MySQL的过程。
摘要由CSDN通过智能技术生成

原文:C#访问MySQL数据库(winform+EF)

以前都是C#连接SQLServer,现在MySQL也比较火了,而且是开源跨平台的,这里连接使用一下,主要是体会一下整个流程,这里使用的是winform 访问MYSQL,当然使用winfrom,还是wfp,以及其他的技术这里不讨论,个人觉得这个比较上手快。

1、安装MYSQl数据库,这里略过,可以参考此文档进行安装。

此文档已经比较细致了,安装并不复杂,主要是下一步下一步就行了,要会基本的配置,这里我的数据库用户名还是sa(建议自己建立一个用户),root的用户名和密码我们这里暂不使用。

2、连接MYSQL数据库,可以采用自带的MySQL Workbench 6.2 CE工具

aeb92ebe96c9fe8357b66efa93609922.png

932a9e59b81afd05da60cd2f83f71833.png

登录后就可以进行建表等操作了,这里我建立一个数据库名称为MY_OA的数据库,我们直接使用SQL语句执行并建立数据库然后刷新列表就可以查看到我们建立的数据库了

如图(1)(2)(3)(4)对应的步骤,另外建立了数据库后还需要建立几张表来存储数据,这些都是基础的和SQLserver大同小异的。

303b86c8e104c4048099fb7e8821ee29.png

脚本如下:

1 CREATE databaseMy_OA2

3 CREATE TABLEmy_oa.sys_user4 (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的步骤一样了

291b77155a799d2154c9b5b3996797fc.png

78d1577eb2a3c191d8e1909f2e9a31c4.png

46281f4e6492c6e0533f62b24622a96f.png

3e2354507130092c3aadb3bbea05f272.png

此处选择MYSQL就行了,正常情况下安装MYSQL的时候就会把VS对应的连接驱动等相关内容直接加入的,不用去手动加的,当然看到这里也是可以连接Oracel数据库的,红线标记的地方,道理应该类似。

下边需要服务器的地址,用户名和密码,最好测试能够连接通过,我这里是sa用户(注意不是默认的),是自己建立的一个用户,默认的是root,如果需要root来登录服务器的话必须在安装MYSQL的时候注意勾选,否则就要新建一个用户来操作。

0787d5ad575fee745835f5dbf5003af4.png

6ba0a8687693785177c009481f3aa5d4.png

这里数据已经有了,另外我们还可以使用SQLdbx、Navicat_Premium_11.0.10等数据库的客户端工具来连接,这工具智能提示比较强,而且体积小便于携带和维护

下面我们就以SQLdbx为例,讲解一下如何连接数据库,其实都是一样的连接,如下:

SQldbx的下载地址和本次的SQl脚本例子可以到百度云下载:

第一步:

需要选择连接的数据库类型(MYSQL),这里也是可以连接其他类型数据库的,自己看吧,也可以试试

第二步:

也是输入用户名和密码连接就行了。

cabcb37a6efb6988dff45847185955f8.png

6c7cf5fb93b40c3b197ed46ac73f17ce.png

数据库可以为空,等登陆后再选择数据库也可以。

另外我们对比一下数据库表的复制,SQLServer我们直接可以这样复制(在select * from 表)的中间加入一个into 新表:

SELECT * INTO sys_user3 FROM sys_user

而在MYSQL中我们直接这样写是报错的:只有传统的建表再导数据了,比如

CREATE TABLEtest

(SELECT * FROMsys_user

)

,二期默认生成的这个id不会自动增长的,需要注意一下,我们主要是为了备份表的数据。

不同的数据库肯定有些小区别,慢慢研究吧。

21e5af12a4f4f0f9118cc1441d0ac077.png

3、如何使用VS2013建立MYSQL的项目(这里讲winform吧)

上边讲的有点多了,赶紧的

(1)、VS【文件】=》【新建】=》【项目】略过,注意选择对应的项目类型默认有winform和asp .net的自己选择,另外我们还需要选择EF的版本,

如何对Entity Framework没啥感觉,没关系,简单来说就是微软帮你连接了数据库的是一个实体框架,让你操作起来比较方便,不用过多去写SQLhelper并能和linq语句lamda表达式等结合起来,提高开发效率,这个是比较实用的。

参考介绍:

另外还要说明的是EF的版本,我这里使用的是EF6,可以通过nuget工具包管理来获得最新版本

c808834f5e2952370e3c685170bd41f6.png

93823e9420142e01571b5f9a5f959aef.png

以下是建立VS项目的步骤截图:

74c1cb7fac6cde3681a9087153565be3.png

06c633a44f3d76c5e516fb41c1ace70c.png

00068e946ba3d9fa916325283a3ff70d.png

ee0bb68fcfbc7565ff1b38af2db71ddc.png

20e14518a1322b5d2c57420911cf31b1.png

以上步骤首先是新建一个MYSQL的连接,然后选择对应的表生成对应的EF实体框架,这样一个EF的winform项目基本就建立好了。

4、查看winfrom项目结构

打开对应的*.tt文件,这些就是EF自动生成的连接数据库后的相关实体类,就不用自己去建立类了(必要时需要自己建立Vew_Sys_User)

namespaceMySql_Windows_Forms_Project2

{usingSystem;usingSystem.Collections.Generic;public partial classsys_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 = newMyOAModelEntities())3 {4 string strUserName =txtUserName.Text.Trim();5 string strPwd =txtPwd.Text.Trim();6 //查询数据库中的记录

7 var userinfo = (from m indb.sys_user8 where m.userName == strUserName && m.pwd ==strPwd9 selectm).FirstOrDefault();

12 if (userinfo != null)13 {14 CurrentUserInfo = userinfo;//标记全局的用户 方便其他地方使用15 //MessageBox.Show("登录成功!");

16 this.Hide();17 MainWindow m = newMainWindow();18 m.ShowDialog();19 }20 else

21 {22 MessageBox.Show("用户名或者密码错误!");23 }

9d472dbefc7fd92fbe5cdd4cb6c4b4a8.png

Code下载地址:

以后将继续学习MYSQL数据库,另外个人在研究C#  Mono for安卓,有兴趣的友友可以一起讨论,互勉!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值