C#访问MySQL数据库(winform+EF)
以前都是C#连接SQLServer,现在MySQL也比较火了,而且是开源跨平台的,这里连接使用一下,主要是体会一下整个流程,这里使用的是winform 访问MYSQL,当然使用winfrom,还是wfp,以及其他的技术这里不讨论,个人觉得这个比较上手快。
http://jingyan.baidu.com/article/642c9d34aa809a644a46f717.html
1、安装MYSQl数据库,这里略过,可以参考此文档进行安装。
此文档已经比较细致了,安装并不复杂,主要是下一步下一步就行了,要会基本的配置,这里我的数据库用户名还是sa(建议自己建立一个用户),root的用户名和密码我们这里暂不使用。
2、连接MYSQL数据库,可以采用自带的MySQL Workbench 6.2 CE工具


登录后就可以进行建表等操作了,这里我建立一个数据库名称为MY_OA的数据库,我们直接使用SQL语句执行并建立数据库然后刷新列表就可以查看到我们建立的数据库了
如图(1)(2)(3)(4)对应的步骤,另外建立了数据库后还需要建立几张表来存储数据,这些都是基础的和SQLserver大同小异的。

脚本如下:
CREATE database My_OA CREATE TABLE my_oa.sys_user
(
id INT not NULL AUTO_INCREMENT PRIMARY KEY,
userName varchar(32),
pwd varchar(32) );
当然也可以使用图形界面来配置,直接鼠标右键来建表,主要是看个人的习惯了,熟悉的话直接SQL句会方便很多也比较快,
这里我们快速的插入三条数据,便于以后测试使用,因为ID是自增的,所以可以不用管,插入后你会发现ID已经自己有了,只是MYSQL中AUTO_INCREMENT和SQLSEVE的identity的区别
INSERT INTO sys_user(userName,pwd) VALUES('51diysoft','');
INSERT INTO sys_user (userName,pwd) VALUES('xmd','');
INSERT INTO sys_user (userName,pwd) VALUES('hjk','');
当然说道这里我们还可以使用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框架操作,比较方便
(主要是体会流程,没有任何美化)
// 获取输入的用户名和密码
using (MyOAModelEntities db = new MyOAModelEntities())
{
string strUserName = txtUserName.Text.Trim();
string strPwd = txtPwd.Text.Trim();
//查询数据库中的记录
var userinfo = (from m in db.sys_user
where m.userName == strUserName && m.pwd == strPwd
select m).FirstOrDefault();
if (userinfo != null)
{
CurrentUserInfo = userinfo;//标记全局的用户 方便其他地方使用
// MessageBox.Show("登录成功!");
this.Hide();
MainWindow m = new MainWindow();
m.ShowDialog();
}
else
{
MessageBox.Show("用户名或者密码错误!");
}

Code下载地址:
以后将继续学习MYSQL数据库,另外个人在研究C# Mono for安卓,有兴趣的友友可以一起讨论,互勉!
C#访问MySQL数据库(winform+EF)的更多相关文章
- java文件来演示如何访问MySQL数据库
java文件来演示如何访问MySQL数据库. 注:在命令行或用一个SQL的前端软件创建Database. 先创建数据库: CREATE DATABASE SCUTCS; 接着,创建表: CREATE ...
- PHP访问MySql数据库介绍
在网站后台,经常要与数据库打交道.本文介绍如何使用XAMPP来管理MySql数据库及如何用PHP来访问MySql数据库. 一.使用XAMPP来管理MySql数据库 首先使用XAMPP打开MySql的管 ...
- C#连接、访问MySQL数据库
一.准备工具 visual stuido(本示例使用visual studio 2010) MySql.Data.dll mysql_installer_community_V5.6.21.1_set ...
- 在Eclipse中使用JDBC访问MySQL数据库的配置方法
在Eclipse中使用JDBC访问MySQL数据库的配置方法 分类: DATABASE 数据结构与算法2009-10-10 16:37 5313人阅读 评论(10) 收藏 举报 jdbcmysql数据 ...
- Spring Boot入门(六):使用MyBatis访问MySql数据库(注解方式)
本系列博客记录自己学习Spring Boot的历程,如帮助到你,不胜荣幸,如有错误,欢迎指正! 本篇博客我们讲解下在Spring Boot中使用MyBatis访问MySql数据库的简单用法. 1.前期 ...
- html页面通过http访问mysql数据库中的内容,实现用户登录的功能
需求: 通过html编写用户登录页面,页面内容包括用户名.密码和登录按钮,点击登录后访问login.php文件,使用按钮默认的submit提交用户名和密码,在login.php中访问mysql数据库, ...
- 关于利用PHP访问MySql数据库的逻辑操作以及增删改查实例操作
PHP访问MySql数据库 <?php //造连接对象$db = new MySQLi("localhost","root","",& ...
- VS2012、2013使用Mysql数据库创建EF的AOD.NET实体模型
VS2012.2013使用Mysql数据库创建EF的AOD.NET实体模型: 1.关闭VS,首先安装mysql-connector-net-6.8.3.(安装后EF创建实体模型时就可以找到Mysql的 ...
- C#访问MySQL数据库的方法
C#访问MySQL数据库的方法 (1)首先需要下载C#访问MySQL数据库的ADO.NET驱动程序 下载地址为: http://dev.mysql.com/downloads/connector/ne ...
随机推荐
- Test oracle db iops
Today, i need to test one database's iops and do something for oracle db's io test. How to test the ...
- 【MongoDB】学习MongoDB推荐三本书
近期学习mongodb,感觉这三本书写得不错.非常大家分享一下:
- Delphi中获取Unix时间戳及注意事项(c语言中time()是按格林威治时间计算的,比北京时间多了8小时)
uses DateUtils;DateTimeToUnix(Now) 可以转换到unix时间,但是注意的是,它得到的时间比c语言中time()得到的时间大了8*60*60这是因为Now是当前时区的时间 ...
- 与众不同 windows phone (26) - Contacts and Calendar(联系人和日历)
原文:与众不同 windows phone (26) - Contacts and Calendar(联系人和日历) [索引页][源码下载] 与众不同 windows phone (26) - Con ...
- SDUT 1304-取数字问题(DFS)
取数字问题 Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描写叙述 给定M×N的矩阵,当中的每一个元素都是-10到10之间的整数.你的 ...
- Android短信监听(二)——利用ContentObserver实现短信监听
MainActivity例如以下: package cc.testsmslistener; import cc.testsmslistener.SMSContentObserver.MessageLi ...
- 深入 CSocket 编程之阻塞和非阻塞模式
有时,花上几个小时阅读.调试.跟踪优秀的源码程序,能够更快地掌握某些技术关键点和精髓.当然,前提是对这些技术大致上有一个了解. 我通过几个采用 CSocket 类编写并基于 Client/Server ...
- Virtualbox mouse move in and out and file share with windows
How to use Virstalbox to share files with Linux and Windows, and to move the mouse in and out Virtua ...
- 用N2N搭建简单的VPN
1. 概述 N2N是一款开源的P2P VPN软件,其作者是著名的开源网管软件ntop的作者Luca Deri. N2N是一个双层架构的VPN,它让用户能够在网络层上开发P2P应用的典型功能,而不是 ...
- .net Mvc文件下载的功能,大文件下载完成之后修改数据库功能
原文:.net Mvc文件下载的功能,大文件下载完成之后修改数据库功能 我服务器上文件只能下载一次,下载了之后就不能下载了,大文件或网速不好时,可能服务端文件流发送完了,客户端还没下载完,导致下载失败 ...