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 ...
随机推荐
- c++ :: 域操作符
c++ :: 域操作符 作用域:变量在程序中的起作用范围简单分为:全局作用域,局部作用域,语句作用域作用域优先级:范围越小优先级越高作用域运算符:"::" 如果希望在局部变量的作用 ...
- WinRarHelper帮助类
WinRarHelper帮助类 关于本文档的说明 本文档使用WinRAR方式来进行简单的压缩和解压动作,纯干货,实际项目这种压缩方式用的少一点,一般我会使用第三方的压缩dll来实现,就如同我上一个压缩 ...
- dll导入导出资源文件查看工具 InspectExe
InspectExe lets you explore and diagnose problems with Win32 applications. It is integrated directly ...
- SQLite中如何用api操作BLOB类型的字段
在实际的编程开发当中我们经常要处理一些大容量二进制数据的存储,如图片或者音乐等等.对于这些二进制数据(blob字段)我们不能像处理普通的文本那样简单的插入或者查询,为此SQLite提供了一组函数来处理 ...
- 每天一个JavaScript实例-动态省份选择城市
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- java学习笔记06--正则表达式
java学习笔记06--正则表达式 正则表达式可以方便的对数据进行匹配,可以执行更加复杂的字符串验证.拆分.替换等操作. 例如:现在要去判断一个字符串是否由数字组成,则可以有以下的两种做法 不使用正则 ...
- [置顶] 页面缓存,cache,设置缓存过期时间,OutputCache
页面缓存 方法一: protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { //缓存有数据 if (Cach ...
- 飘逸的python - yield简明教程
发现还有非常多人对yield不理解,云里雾里,于是试着用文字表述. 仅仅要函数含有yield语句,它就返回一个生成器.所以我们与其把其看成函数定义,不如看作是生成器定义.函数用return返回,而生成 ...
- 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 ...
- Cordova/Phonegap 升级至 2.8.1
相关链接 Apache Cordova 项目首页: http://cordova.apache.org/ Apache Cordova 历史版本列表: http://archive.apache.or ...