数据库管理系统
数据库是用来存放数据的仓库,它拥有很大的存储空间,可以用来存放我们系统的所有数据。而数据库管理系统(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语句是否执行成功。
或者搜索公众微信号:ProgramNotes,文章也会在公众号更新