c# mysql 参数使用实例_C#操作MySQL数据库的简单例子

news/2024/7/7 15:53:52

本示例演示了用C#操作MySQL的方法,提供了三个可重用的类MySqlDBUtil,MySqlPageUtil,Page。

本示例由 C#操作Access数据库的简单例子修改而来。

1.首先下载MySQL数据库的.NET驱动

http://dev.mysql.com/get/Downloads/Connector-Net/mysql-connector-net-5.0.8.1-noinstall.zip/from/pick#mirrors

将bin目录里的MySql.Data.dll文件复制到工程目录,并且将dll的引用加入到项目中,这样就可以通过相关的类来操作MySQL数据库了。

using MySql.Data.MySqlClient;

using System.Data;

连接字符串:String connectionString = "server=127.0.0.1;user id=root; password=as; database=3tvs; pooling=false;charset=utf8";

连接字符串中各个项目的意思是很明确的,需要注意的是charset应该设置成和数据库表的charset一致,否则可能出现中文乱码。

然后将整个项目中的OleDb用MySql替换,这样基本上就可以了。不同的是带参数的sql语句,

Access中是

string sql="insert into product(name,quantity,price,sale_date,checked_flag)values(?,?,?,?,?)";

parameters[0]=new MySqlParameter("@name",MySqlDbType.VarChar,100);

MySql中应改为

string sql="insert into product(name,quantity,price,sale_date,checked_flag)values(?name,?quantity,?price,?sale_date,?checked_flag)";

parameters[0]=new MySqlParameter("?name",MySqlDbType.VarChar,100);

2.取得MySQL自增标识字段在插入数据后的id值

cmd.CommandText = @"select @@identity";

int value = Int32.Parse(cmd.ExecuteScalar().ToString());

return value;

用cmd.CommandText = @"select LAST_INSERT_ID()";结果一样,两者的区别没有研究。

3.分页查询

使用Limit子句来处理分页查询,这样相对于Access的分页查询,代码大量简化,效率也会提高。

代码这里下载

download.gifMySqlDBUtilDemo.rar (198.41 KB , 下载:4166次)

本例程是一个c#的winform程序,但是数据访问类可以在Web环境下使用。

运行前先利用bin\Release下的sql语句文件建表并修改MySqlDBUtil中的连接字符串。

本例程演示了:

1.MySQL数据库的插入,更新,修改,查询;

2.带参数的sql语句的使用,而不是拼SQL;

3.使用Limit子句的分页查询;

4.用事务同时执行多个SQL语句;

5.在插入数据的同时返回最新的ID值;

6.整型,实型,字符串,日期型,布尔型五种数据类型的操作;

7.使用正则表达式来验证整数和实数;

8.listview用来显示数据的一些基本用法。

本示例不包括:

1.完善的分页封装,只提供了分页的简单包装。

2.嵌套的事务处理,提供了同时执行多个sql语句的事务处理,但不支持嵌套事务。

3.listview的使用,只是利用winform控件来演示数据访问,因此不能作为winform编程的良好示例,例如添加数据时界面并没有很好地更新。

后记:

由于API接口一致,将操作Access数据库的类改为操作MySQL数据库的类很容易,利用这两个示例,可以学习基本的数据库操作,也可以用来做一些简单的应用程序了。实际的项目中有成熟的开源项目可用,如iBATIS.NET和NHibernate,这些项目都建筑在这些基本的API之上,先学习我写的这两个小例子也有助于学习理解这些项目。

轻松一下就上http://www.3tvs.info


http://www.niftyadmin.cn/n/4261150.html

相关文章

How To Determinate If An EMCPOWER Partition Is Valid For ASMLIB

If you are trying to create an ASMLIB disk using an emcpower# partition and you get the next error: ASMdisk:asmtool:Device"/dev/emcpowera11"isnotapartition[FAILED] Then you will need to determinate if the emcpower# partition is valid. 解决步骤如下…

终于开博了,庆祝下。

我是个懒人,不喜欢写日记。高中三年一个日记本好不容易记了大半本,大学到现在研二了,已经快6年了,一个日记本也才用了一半,对我而言,这已经不是纯粹的日记了。已经是月记年记了。只是在心情不好时&#xff…

smarty mysql demo_smarty模板的使用方法实例分析

本文实例讲述了smarty模板的使用方法。分享给大家供大家参考,具体如下:这里以smarty3为例首先, 在官网下载smarty3模板文件,然后解压。在解压之后的文件夹中,libs是smarty模板的核心文件,demo里面有示例程序…

【论文阅读笔记】Attack-Resistant Federated Learning with Residual-based Reweighting

个人阅读笔记,如有错误欢迎指出 Arxiv 2019 [1912.11464] Attack-Resistant Federated Learning with Residual-based Reweighting (arxiv.org) 问题: 联邦学习容易受到后门攻击 创新: 提出一种基于残差的重新加权聚合算法 聚合算法…

致青岛雅怀幼儿园的道歉信

我是一个在网络公司的程序员,前一阵和雅怀幼儿园产生一点矛盾,我就做了很对不起雅怀幼儿园的举动--捏造、发布虚假信息。我在网上搜索了一些对幼儿园不利的信息,将幼儿园的名字换成雅怀幼儿园,将“青岛雅怀幼儿园,赚钱…

How to Re-configure Asm DiskGroup

One ASM DISK GROUP contains all of the available disks of the server. Need to re-configure the current DISK GROUP to break it down into three different ASM disk groups. 注意事项: 1). A DISK GROUP with single disk is possible only if the redunda…

matlab如何将三维转为二维_matlab怎么把二维的变成三维的

clear%清除变量k1.38054e-23;%玻尔兹曼常数h6.626e-34;%普朗克常数c2.997925e8;%光速sigma5.6688e-008;%斯特潘常数b0.0029;%维恩常数t98.6;%热力学温度向量nlength(t);%向量长...clear %清除变量k1.38054e-23; %玻尔兹曼常数h6.626e-34; %普朗克常数c2.997925e8; %光速sigma5.…

钢材价格上涨 超耐用新型UPVC三层共挤发泡隔热瓦受热捧

钢材价格上涨超耐用新型UPVC三层共挤发泡隔热瓦受热捧<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />Price for Steel Raising Up, New Building Materials Xinli UPVC recyclable roofing tiles (roof sheet) become popular日…