博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ASP.NET 访问 MySql
阅读量:7051 次
发布时间:2019-06-28

本文共 9201 字,大约阅读时间需要 30 分钟。

1. 首先需要安装mysql, 脚本之家下载地址: http://www.jb51.net/softs/2193.html 或者去mysql.com官网都可以,一路next,安装好后,有个简单配置,提示有个设置登录密码和服务名称,

默认localhost,用户名root,密码自己设置。
2. 安装了mysql数据库后,需要一个管理工具,就像sqlserver的SQL Server Management Studio一样,推荐使用Navicat for MySQL,
下载地址:http://www.jb51.net/database/2223.html,安装后,打开界面如下图
确定后,右键新建的连接名字,就可以建数据库,建表了。字段类型和sqlserver基本一致。

3. Asp.net连接mysql 不推荐使用ODBC,推荐是用mysql官网提供的组件动)MySQL.Data.Dll,官网地址,

http://dev.mysql.com/downloads/connector/net/5.1.html;可能需要简单的注册下用户,看好版本,如果嫌弃麻烦可以直接下载一个相应版本的MySQL.Data.Dll ,放入bin下,增加引用即可 4. 我自己写的一个简单MysqlHelper.cs类,操作和sqlserver 很相似。有了这个类,你就知道怎么用了,很简单 代码如下

. 代码如下:
 
using System; using System.Collections; using System.Collections.Specialized; using System.Data; using MySql.Data.MySqlClient; using System.Configuration; using System.Data.Common; using System.Collections.Generic; using System.Text.RegularExpressions; namespace LOAF.DAL { public class MysqlHelper { //数据库连接字符串(web.config来配置),可以动态更改connectionString支持多数据库. // public static string connectionString = ConfigurationManager.ConnectionStrings["ConnDB"].ConnectionString; public static string connectionString = ConfigurationManager.AppSettings["MySQL"]; //public string m = ConfigurationManager.AppSettings["MySQL"]; public MysqlHelper() { } #region ExecuteNonQuery //执行SQL语句,返回影响的记录数 ///  /// 执行SQL语句,返回影响的记录数 ///  /// SQL语句 /// 
影响的记录数
public static int ExecuteNonQuery(string SQLString) { using (MySqlConnection connection = new MySqlConnection(connectionString)) { using (MySqlCommand cmd = new MySqlCommand(SQLString, connection)) { try { connection.Open(); int rows = cmd.ExecuteNonQuery(); return rows; } catch (MySql.Data.MySqlClient.MySqlException e) { connection.Close(); throw e; } } } } /// /// 执行SQL语句,返回影响的记录数 /// /// SQL语句 ///
影响的记录数
public static int ExecuteNonQuery(string SQLString, params MySqlParameter[] cmdParms) { using (MySqlConnection connection = new MySqlConnection(connectionString)) { using (MySqlCommand cmd = new MySqlCommand()) { try { PrepareCommand(cmd, connection, null, SQLString, cmdParms); int rows = cmd.ExecuteNonQuery(); cmd.Parameters.Clear(); return rows; } catch (MySql.Data.MySqlClient.MySqlException e) { throw e; } } } } //执行多条SQL语句,实现数据库事务。 /// /// 执行多条SQL语句,实现数据库事务。 /// /// 多条SQL语句 public static bool ExecuteNoQueryTran(List
SQLStringList) { using (MySqlConnection conn = new MySqlConnection(connectionString)) { conn.Open(); MySqlCommand cmd = new MySqlCommand(); cmd.Connection = conn; MySqlTransaction tx = conn.BeginTransaction(); cmd.Transaction = tx; try { for (int n = 0; n < SQLStringList.Count; n++) { string strsql = SQLStringList[n]; if (strsql.Trim().Length > 1) { cmd.CommandText = strsql; PrepareCommand(cmd, conn, tx, strsql, null); cmd.ExecuteNonQuery(); } } cmd.ExecuteNonQuery(); tx.Commit(); return true; } catch { tx.Rollback(); return false; } } } #endregion #region ExecuteScalar ///
/// 执行一条计算查询结果语句,返回查询结果(object)。 /// ///
计算查询结果语句 ///
查询结果(object)
public static object ExecuteScalar(string SQLString) { using (MySqlConnection connection = new MySqlConnection(connectionString)) { using (MySqlCommand cmd = new MySqlCommand(SQLString, connection)) { try { connection.Open(); object obj = cmd.ExecuteScalar(); if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value))) { return null; } else { return obj; } } catch (MySql.Data.MySqlClient.MySqlException e) { connection.Close(); throw e; } } } } ///
/// 执行一条计算查询结果语句,返回查询结果(object)。 /// ///
计算查询结果语句 ///
查询结果(object)
public static object ExecuteScalar(string SQLString, params MySqlParameter[] cmdParms) { using (MySqlConnection connection = new MySqlConnection(connectionString)) { using (MySqlCommand cmd = new MySqlCommand()) { try { PrepareCommand(cmd, connection, null, SQLString, cmdParms); object obj = cmd.ExecuteScalar(); cmd.Parameters.Clear(); if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value))) { return null; } else { return obj; } } catch (MySql.Data.MySqlClient.MySqlException e) { throw e; } } } } #endregion #region ExecuteReader ///
/// 执行查询语句,返回MySqlDataReader ( 注意:调用该方法后,一定要对MySqlDataReader进行Close ) /// ///
查询语句 ///
MySqlDataReader
public static MySqlDataReader ExecuteReader(string strSQL) { MySqlConnection connection = new MySqlConnection(connectionString); MySqlCommand cmd = new MySqlCommand(strSQL, connection); try { connection.Open(); MySqlDataReader myReader = cmd.ExecuteReader(CommandBehavior.CloseConnection); return myReader; } catch (MySql.Data.MySqlClient.MySqlException e) { throw e; } } ///
/// 执行查询语句,返回MySqlDataReader ( 注意:调用该方法后,一定要对MySqlDataReader进行Close ) /// ///
查询语句 ///
MySqlDataReader
public static MySqlDataReader ExecuteReader(string SQLString, params MySqlParameter[] cmdParms) { MySqlConnection connection = new MySqlConnection(connectionString); MySqlCommand cmd = new MySqlCommand(); try { PrepareCommand(cmd, connection, null, SQLString, cmdParms); MySqlDataReader myReader = cmd.ExecuteReader(CommandBehavior.CloseConnection); cmd.Parameters.Clear(); return myReader; } catch (MySql.Data.MySqlClient.MySqlException e) { throw e; } // finally // { // cmd.Dispose(); // connection.Close(); // } } #endregion #region ExecuteDataTable ///
/// 执行查询语句,返回DataTable /// ///
查询语句 ///
DataTable
public static DataTable ExecuteDataTable(string SQLString) { using (MySqlConnection connection = new MySqlConnection(connectionString)) { DataSet ds = new DataSet(); try { connection.Open(); MySqlDataAdapter command = new MySqlDataAdapter(SQLString, connection); command.Fill(ds, "ds"); } catch (MySql.Data.MySqlClient.MySqlException ex) { throw new Exception(ex.Message); } return ds.Tables[0]; } } ///
/// 执行查询语句,返回DataSet /// ///
查询语句 ///
DataTable
public static DataTable ExecuteDataTable(string SQLString, params MySqlParameter[] cmdParms) { using (MySqlConnection connection = new MySqlConnection(connectionString)) { MySqlCommand cmd = new MySqlCommand(); PrepareCommand(cmd, connection, null, SQLString, cmdParms); using (MySqlDataAdapter da = new MySqlDataAdapter(cmd)) { DataSet ds = new DataSet(); try { da.Fill(ds, "ds"); cmd.Parameters.Clear(); } catch (MySql.Data.MySqlClient.MySqlException ex) { throw new Exception(ex.Message); } return ds.Tables[0]; } } } //获取起始页码和结束页码 public static DataTable ExecuteDataTable(string cmdText, int startResord, int maxRecord) { using (MySqlConnection connection = new MySqlConnection(connectionString)) { DataSet ds = new DataSet(); try { connection.Open(); MySqlDataAdapter command = new MySqlDataAdapter(cmdText, connection); command.Fill(ds, startResord, maxRecord, "ds"); } catch (MySql.Data.MySqlClient.MySqlException ex) { throw new Exception(ex.Message); } return ds.Tables[0]; } } #endregion ///
/// 获取分页数据 在不用存储过程情况下 /// ///
总记录条数 ///
选择的列逗号隔开,支持top num ///
表名字 ///
条件字符 必须前加 and ///
排序 例如 ID ///
当前索引页 ///
每页记录数 ///
public static DataTable getPager(out int recordCount, string selectList, string tableName, string whereStr, string orderExpression, int pageIdex, int pageSize) { int rows = 0; DataTable dt = new DataTable(); MatchCollection matchs = Regex.Matches(selectList, @"top\s+\d{1,}", RegexOptions.IgnoreCase);//含有top string sqlStr = sqlStr = string.Format("select {0} from {1} where 1=1 {2}", selectList, tableName, whereStr); if (!string.IsNullOrEmpty(orderExpression)) { sqlStr += string.Format(" Order by {0}", orderExpression); } if (matchs.Count > 0) //含有top的时候 { DataTable dtTemp = ExecuteDataTable(sqlStr); rows = dtTemp.Rows.Count; } else //不含有top的时候 { string sqlCount = string.Format("select count(*) from {0} where 1=1 {1} ", tableName, whereStr); //获取行数 object obj = ExecuteScalar(sqlCount); if (obj != null) { rows = Convert.ToInt32(obj); } } dt = ExecuteDataTable(sqlStr, (pageIdex-1)*pageSize, pageSize); recordCount = rows; return dt; } #region 创建command private static void PrepareCommand(MySqlCommand cmd, MySqlConnection conn, MySqlTransaction trans, string cmdText, MySqlParameter[] cmdParms) { if (conn.State != ConnectionState.Open) conn.Open(); cmd.Connection = conn; cmd.CommandText = cmdText; if (trans != null) cmd.Transaction = trans; cmd.CommandType = CommandType.Text;//cmdType; if (cmdParms != null) { foreach (MySqlParameter parameter in cmdParms) { if ((parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input) && (parameter.Value == null)) { parameter.Value = DBNull.Value; } cmd.Parameters.Add(parameter); } } } #endregion } }

 

5. 需要注意的地方有如下几点

1)在sqlserver中参数化sql语句是用“@”符号,在mysql里面需要是用?号,切记,切记. 2 )还有就是sqlserver中删除表可以这样写delete news where ID=12,但是在mysql里面 是delete from news where ID=12,收了from报错 3 )我在使用过程中遇到了中文乱码,网上大部分解决办法是把表的设置成utf-8字符集。以及 C:\Program Files\MySQL\MySQL Server 5.1路径下my.ini 打开找到两处

default-character-set 都设置成=utf8,但是我的还是乱码,最后   6.以上是我的个人总结,有可能很肤浅,不要见笑,有问题共同解决,谢谢~

 

转自:http://www.poluoluo.com/jzxy/201304/202859.html

转载于:https://www.cnblogs.com/ChineseMoonGod/p/5152307.html

你可能感兴趣的文章
使用STS和Gradle创建Restful服务-Hello World
查看>>
网络服务器开发总结
查看>>
关于redis的主从、哨兵、集群
查看>>
Extjs Form用法详解
查看>>
ExecutorService线程池
查看>>
OD使用及快捷键
查看>>
将Mule ESB Http项目转换为Tomcat项目(3) ESB项目运行
查看>>
IE9开始支持SVG格式(VML终结)
查看>>
php set_time_limit
查看>>
一种Android的多平台的安装包打包方法探究
查看>>
观察者模式
查看>>
【转】PHP中的Hash算法
查看>>
SqlLite的工具类SQLiteOpenHelper
查看>>
chgrp chown chmod
查看>>
nodejs中安装express
查看>>
2014软件表
查看>>
Struts2教程3:struts.xml常用配置解析
查看>>
(转帖)Implementing custom JavaFx Bindings
查看>>
mysql外键
查看>>
转发和重定向的区别
查看>>