当前位置:
首页 > Python基础教程 >
-
C#教程之C#连接操作MySQL数据库详细步骤 帮助类等
最近准备写一个仓库管理的项目
客户要求使用C#编写MySQL存储数据
为了方便,整理了数据库操作的工具类
首先在项目App.config 文件下添加节点
<connectionStrings> <add name="constr" connectionString="server=localhost;port=3306;user id=root;password=root;database=car;Charset=utf8;"/> </connectionStrings>
例如:
然后在项目引用中添加MySQL.DAL.dll 类库
vs版本低的可能找不到这个类库,,只有去网上下载,然后添加本地引用了
然后编写工具类:
using System; using System.Collections.Generic; using System.Configuration; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; using MySql.Data.MySqlClient; /// <summary> /// @author: 房上的猫 /// /// @博客地址: https://www.cnblogs.com/lsy131479/ /// </summary> namespace WMS.DAL { public class MySQLDBHelp { public static string Constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString; #region 建立MySql数据库连接 /// <summary> /// 建立数据库连接. /// </summary> /// <returns>返回MySqlConnection对象</returns> public MySqlConnection getMySqlCon() { string M_str_sqlcon = Constr;// "server=localhost;port=3306;user id=root;password=root;database=car"; //根据自己的设置 MySqlConnection myCon = new MySqlConnection(M_str_sqlcon); return myCon; } #endregion #region 执行MySqlCommand命令 /// <summary> /// 执行MySqlCommand /// </summary> /// <param name="M_str_sqlstr">SQL语句</param> public int getMySqlCom(string M_str_sqlstr, params MySqlParameter[] parameters) { MySqlConnection mysqlcon = this.getMySqlCon(); mysqlcon.Open(); MySqlCommand mysqlcom = new MySqlCommand(M_str_sqlstr, mysqlcon); mysqlcom.Parameters.AddRange(parameters); int count = mysqlcom.ExecuteNonQuery(); mysqlcom.Dispose(); mysqlcon.Close(); mysqlcon.Dispose(); return count; } #endregion #region 创建MySqlDataReader对象 /// <summary> /// 创建一个MySqlDataReader对象 /// </summary> /// <param name="M_str_sqlstr">SQL语句</param> /// <returns>返回MySqlDataReader对象</returns> public DataTable getMySqlRead(string M_str_sqlstr, params MySqlParameter[] parameters) { MySqlConnection mysqlcon = this.getMySqlCon(); mysqlcon.Open(); MySqlCommand mysqlcom = new MySqlCommand(M_str_sqlstr, mysqlcon); mysqlcom.Parameters.AddRange(parameters); MySqlDataAdapter mda = new MySqlDataAdapter(mysqlcom); DataTable dt = new DataTable(); mda.Fill(dt); mysqlcon.Close(); return dt; } #endregion } }
进行测试:
class Program { static void Main(string[] args) { MySQLDBHelp help = new MySQLDBHelp(); String sql = "select * from insertcar"; MySqlDataReader dr = help.getmysqlread(sql); while (dr.Read()) { Console.WriteLine(dr["tax"].ToString()); } Console.Read(); } }
结果:
最后提供一个利用反射和泛型 可以将datatable 转为 list集合的工具类
using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks; namespace WMS.Common { public class MyTool { /// <summary> /// DataSetToList /// </summary> /// <typeparam name="T">转换类型</typeparam> /// <param name="dataSet">数据源</param> /// <param name="tableIndex">需要转换表的索引</param> /// <returns></returns> public List<T> DataTableToList<T>(DataTable dt) { //确认参数有效 if (dt == null ) return null; List<T> list = new List<T>(); for (int i = 0; i < dt.Rows.Count; i++) { //创建泛型对象 T _t = Activator.CreateInstance<T>(); //获取对象所有属性 PropertyInfo[] propertyInfo = _t.GetType().GetProperties(); for (int j = 0; j < dt.Columns.Count; j++) { foreach (PropertyInfo info in propertyInfo) { //属性名称和列名相同时赋值 if (dt.Columns[j].ColumnName.ToUpper().Equals(info.Name.ToUpper())) { if (dt.Rows[i][j] != DBNull.Value) { info.SetValue(_t, dt.Rows[i][j], null); } else { info.SetValue(_t, null, null); } break; } } } list.Add(_t); } return list; } } }
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式