数据库管理系统
数据库是用来存放数据的仓库,它拥有很大的存储空间,可以用来存放我们系统的所有数据。而数据库管理系统(DBMS)是为管理数据库而设计的系统,可以对文件中的数据进行新增、截取、更新、删除、查询、备份等操作,最主要是安全可靠、灵活高效、性能优越。目前主流的数据库管理系统有:Oracle、MySQL、SQL Server、PostgreSQL、MongoDB、DB2、Redis等,今天主要分享下ASP.NET如何链接MySQL数据库。

MySQL数据库
MySQL是一款关系型数据库管理系统,关系型数据库是将数据保存在不同的数据表中,表与表之间可以通过外键关联来匹配,这样就提高了查表速度并增强了表之间的灵活性。而且最主要的是MySQL 是开源的,这样就不需要支付额外的费用,大大降低开发成本,这也是为什么很多小型网站都会优先选择MySQL作为网站数据库的原因之一。

MySQL数据库特点
1,MySQL是开源的,可以免费使用;
2,支持多平台系统,包括Linux、Mac OS、Windows等操作系统;
3,支持多语言开发,包括 C、C++、C#、.NET、Java、Python、Perl、Ruby等;
4,支持多线程,充分利用 CPU 资源;
5,提供 TCP/IP、ODBC 和 JDBC等多种数据库连接途径,方便快捷;
6,优化的SQL查询算法,有效地提高查询速度。

MySQL Connector/Net 组件连接
MySQL Connector/Net 是MySQL官方推出的组件,是为ADO.NET访问MySQL数据库设计的.NET专用组件,可以在MySQL官网下载。安装之后在安装目录中可以找到动态链接库MySql.Data.dll,在项目中新建一个类库(DBHelper)用来专门处理数据库,在“解决方案资源管理器”内找到DBHelper类库中的“引用”,单击右键“添加引用”,然后“浏览”找到安装MySQL的地方中自带的“MySql.Data.dll”文件,将其添加到项目中来即可。

MysqlHelper公共类设计
为了方便后期维护,我们通常会把一些常用的类进行抽离单独定义成公共类,方便后期进行修改和更新,这里我把操作数据库表进行了抽离,定义一个GetMysqlData方法来获取数据库资料,该方法返回一个DataTable对象,调用时传入一个string类型参数,这个参数是时需要执行的SQL语句。在程序中引用命名空间MySql.Data.MySqlClient,using System.Data,具体封装代码如下(我们还可以把数据库增删改查都写成公共类):
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web;
using MySql.Data.MySqlClient;
using System.Data;
namespace DBHelper
{
public class MysqlHelper
{
/链接数据库的信息
private string conStr = "server=localhost;port=3306;user=root;password=root;database=mysql;";
public DataTable GetMysqlData(string sql)
{
MySqlConnection con = new MySqlConnection(conStr);//创建链接
con.Open();//打开链接
MySqlDataAdapter data = new MySqlDataAdapter(sql, conStr); //创建MySqlDataAdapter对象
DataSet res = new DataSet(); //创建DataSet对象
data.Fill(res);//填充DataSet对象
con.Close(); //关闭连接
return res.Tables[0]; //返回DataTable对象
}
}
}
新建aspx页面
新建一个WebForm1.aspx页面,用来显示从数据库获取到的数据,添加一个Label标签(直接从工具箱里面拖控件即可),然后在WebForm1.aspx.cs文件中添加的页面的后台逻辑,调用MysqlHelper公共类,传入SQL查询语句获取数据库资料。
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DBHelper; //引入空间名
using System.Data;
namespace WebApplication1
{
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string sql = "SELECT * FROM db"; //SQL查询语句
MysqlHelper DB = new MysqlHelper(); //实例化MysqlHelper类
DataTable res = DB.GetMysqlData(sql); //调用GetMysqlData方法
this.Label1.Text = res.Columns[2].ToString(); //给Label1标签赋值
}
}
}
运行页面查看结果
运行WebForm1.aspx页面,在浏览器中我们就可以看到lable标签显示的是数据库MySQL中的db表中的第一栏的第三个参数是User,因为res是获取到的DataTable对象,所以这里要给lable赋值智能提取对象中的值,这里我给lable赋值了res.Columns[2].ToString(),所以得到了User这个值。

拓展MysqlHelper公共类
实现对数据库的增删改查操作,并返回一个bool类型的执行结果,成功则true,失败则false,调用该方法同样需传入一个string类型的参数,这个是参数时需要执行的SQL语句。ExecuteNonQuery()执行成功返回的是一受影响的行数,对于"Create Table"和"Drop Table"语句,返回值是0,其他SQL语句执行失败的话返回值是-1,所以这里我们只要判断ExecuteNonQuery返回值就可以知道SQL语句是否执行成功。
public bool ChangeMysqlData(string sql)
{
MySqlConnection con = new MySqlConnection(conStr); //创建链接
con.Open(); //打开链接
MySqlCommand com = new MySqlCommand(sql, con); //创建MySqlCommand对象
int res = com.ExecuteNonQuery(); //获取ExecuteNonQuery返回值
con.Close(); //关闭连接
if (res > 0) //判断返回结果
{
return true; //返回成功
}
else
{
return false; //返回失败
}
}
上海艾磊科技有限公司专门为企业提供IT咨询,IT外包,系统集成,以及各类IT增值服务。其中增值服务包括OFFICE 365云服务,鼎捷企业ERP管理软件,云备份,企业邮箱,无线覆盖,上网行为管理,VPN架设,网络安全服务,INTERNET接入,设备租赁, IP电话服务。






