[转]C#连接操作mysql实例

本文转自:http://hi.baidu.com/zhqngweng/item/c4d2520cb7216877bfe97edf

 

第三方组件:Mysql.Data.dll
说明:去官方网站下载Mysql.Data.dll,然后在项目中添加该组件的引用,在代码页里输入using Mysql.Data.MysqlClient,我们就可以顺利的使用该类库的函数建立连接了。

以下是几个常用函数:

#region  建立MySql数据库连接
    /// <summary>
    /// 建立数据库连接.
    /// </summary>
    /// <returns>返回MySqlConnection对象</returns>
    public MySqlConnection getmysqlcon()
    {
        string M_str_sqlcon = "server=localhost;user id=root;password=root;database=abc"; //根据自己的设置
        MySqlConnection myCon = new MySqlConnection(M_str_sqlcon);
        return myCon;
    }
    #endregion

    #region  执行MySqlCommand命令
    /// <summary>
    /// 执行MySqlCommand
    /// </summary>
    /// <param name="M_str_sqlstr">SQL语句</param>
    public void getmysqlcom(string M_str_sqlstr)
    {
        MySqlConnection mysqlcon = this.getmysqlcon();
        mysqlcon.Open();
        MySqlCommand mysqlcom = new MySqlCommand(M_str_sqlstr, mysqlcon);
        mysqlcom.ExecuteNonQuery();
        mysqlcom.Dispose();
        mysqlcon.Close();
        mysqlcon.Dispose();
    }
    #endregion

#region  创建MySqlDataReader对象
    /// <summary>
    /// 创建一个MySqlDataReader对象
    /// </summary>
    /// <param name="M_str_sqlstr">SQL语句</param>
    /// <returns>返回MySqlDataReader对象</returns>
    public MySqlDataReader getmysqlread(string M_str_sqlstr)
    {
        MySqlConnection mysqlcon = this.getmysqlcon();
        MySqlCommand mysqlcom = new MySqlCommand(M_str_sqlstr, mysqlcon);
        mysqlcon.Open();
        MySqlDataReader mysqlread = mysqlcom.ExecuteReader(CommandBehavior.CloseConnection);
        return mysqlread;
    }
    #endregion

 

 

 

另一篇:

 

测试环境:Windows XP + MySql 5.0.24 + Visual C# 2008 Exdivss Edition
By lucas 2008.12.29
1、用MySQLDriverCS连接MySQL数据库
先下载和安装MySQLDriverCS,地址:
http://sourceforge.net/projects/mysqldrivercs/
在安装文件夹下面找到MySQLDriver.dll,然后将MySQLDriver.dll添加引用到项目中
注:我下载的是版本是 MySQLDriverCS-n-EasyQueryTools-4.0.1-DotNet2.0.exe

 using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.Odbc;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using MySQLDriverCS;
namespace mysql
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            MySQLConnection conn = null;
            conn = new MySQLConnection(new MySQLConnectionString("localhost", "inv", "root", "831025").AsString);
            conn.Open();
            MySQLCommand commn = new MySQLCommand("set names gb2312", conn);
            commn.ExecuteNonQuery();
            string sql = "select * from exchange ";
            MySQLDataAdapter mda = new MySQLDataAdapter(sql, conn);
            DataSet ds = new DataSet();
            mda.Fill(ds, "table1");
            this.dataGrid1.DataSource = ds.Tables["table1"];
            conn.Close();
        }
    }
}


2、通过ODBC访问mysql数据库:
参考:http://www.microsoft.com/china/community/Column/63.mspx
1.      安装Microsoft ODBC.net:我安装的是mysql-connector-odbc-3.51.22-win32.msi
2.      安装MDAC 2.7或者更高版本:我安装的是mdac_typ.exe 2.7简体中文版
3.      安装MySQL的ODBC驱动程序:我安装的是 odbc_net.msi
4.      管理工具 -> 数据源ODBC –>配置DSN…
5.      解决方案管理中添加引用 Microsoft.Data.Odbc.dll(1.0.3300)
6.      代码中增加引用 using Microsoft.Data.Odbc;
 

 using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Linq;   //vs2005好像没有这个命名空间,在c#2008下测试自动生成的
using System.Text;
using System.Windows.Forms;
using Microsoft.Data.Odbc;
namespace mysql
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            string MyConString = "DRIVER={MySQL ODBC 3.51 Driver};" +
                                 "SERVER=localhost;" +
                                 "DATABASE=inv;" +
                                 "UID=root;" +
                                 "PASSWORD=831025;" +
                                 "OPTION=3";
            OdbcConnection MyConnection = new OdbcConnection(MyConString);
            MyConnection.Open();
            Console.WriteLine("\n success, connected successfully !\n");
            string query = "insert into test values( ''hello'', ''lucas'', ''liu'')";
            OdbcCommand cmd = new OdbcCommand(query, MyConnection);
            //处理异常:插入重复记录有异常
try{
   cmd.ExecuteNonQuery();
}
catch(Exception ex){
                 Console.WriteLine("record duplicate.");
}finally{
                 cmd.Dispose();
}
/
/
           MyConnection.Close();
        }
    }
}

使用示例:

using System;
using System.Configuration;
using MySql.Data.MySqlClient;
/// <summary>
/// TestDatebase 的摘要说明
/// </summary>
public class TestDatebase
{
    public TestDatebase()
    {
        //
        // TODO: 在此处添加构造函数逻辑
        //
    }
    public static void Main(String[] args)
    {
        MySqlConnection mysql = getMySqlCon();
        //查询sql
        String sqlSearch = "select * from student";
        //插入sql
        String sqlInsert = "insert into student values (12,'张三',25,'大专')";
        //修改sql
        String sqlUpdate = "update student set name='李四' where id= 3";
        //删除sql
        String sqlDel = "delete from student where id = 12";
        //打印SQL语句
        Console.WriteLine(sqlDel);
        //四种语句对象
        //MySqlCommand mySqlCommand = getSqlCommand(sqlSearch, mysql);
        //MySqlCommand mySqlCommand = getSqlCommand(sqlInsert, mysql);
        //MySqlCommand mySqlCommand = getSqlCommand(sqlUpdate, mysql);
        MySqlCommand mySqlCommand = getSqlCommand(sqlDel, mysql);
        mysql.Open();
        //getResultset(mySqlCommand);
        //getInsert(mySqlCommand);
        //getUpdate(mySqlCommand);
        getDel(mySqlCommand);
        //记得关闭
        mysql.Close();
       String readLine = Console.ReadLine();
    }
    /// <summary>
    /// 建立mysql数据库链接
    /// </summary>
    /// <returns></returns>
    public static MySqlConnection getMySqlCon()
    {
        String mysqlStr = "Database=test;Data Source=127.0.0.1;User Id=root;Password=root;pooling=false;CharSet=utf8;port=3306";
        // String mySqlCon = ConfigurationManager.ConnectionStrings["MySqlCon"].ConnectionString;
        MySqlConnection mysql = new MySqlConnection(mysqlStr);
        return mysql;
    }
    /// <summary>
    /// 建立执行命令语句对象
    /// </summary>
    /// <param name="sql"></param>
    /// <param name="mysql"></param>
    /// <returns></returns>
    public static MySqlCommand getSqlCommand(String sql,MySqlConnection mysql)
    {
        MySqlCommand mySqlCommand = new MySqlCommand(sql, mysql);
        //  MySqlCommand mySqlCommand = new MySqlCommand(sql);
        // mySqlCommand.Connection = mysql;
        return mySqlCommand;
    }
    /// <summary>
    /// 查询并获得结果集并遍历
    /// </summary>
    /// <param name="mySqlCommand"></param>
    public static void getResultset(MySqlCommand mySqlCommand)
    {
        MySqlDataReader reader = mySqlCommand.ExecuteReader();
        try
        {
            while (reader.Read())
            {
                if (reader.HasRows)
                {
                    Console.WriteLine("编号:" + reader.GetInt32(0) + "|姓名:" + reader.GetString(1) + "|年龄:" + reader.GetInt32(2) + "|学历:" + reader.GetString(3));
                }
            }
        }
        catch (Exception)
        {

            Console.WriteLine("查询失败了!");
        }
        finally
        {
            reader.Close();
        }
    }
    /// <summary>
    /// 添加数据
    /// </summary>
    /// <param name="mySqlCommand"></param>
    public static void getInsert(MySqlCommand mySqlCommand)
    {
        try
        {
            mySqlCommand.ExecuteNonQuery();
        }
        catch (Exception ex)
        {
            String message = ex.Message;
            Console.WriteLine("插入数据失败了!" + message);
        }
      
    }
    /// <summary>
    /// 修改数据
    /// </summary>
    /// <param name="mySqlCommand"></param>
    public static void getUpdate(MySqlCommand mySqlCommand)
    {
        try
        {
            mySqlCommand.ExecuteNonQuery();
        }
        catch (Exception ex)
        {

            String message = ex.Message;
            Console.WriteLine("修改数据失败了!" + message);
        }
    }
    /// <summary>
    /// 删除数据
    /// </summary>
    /// <param name="mySqlCommand"></param>
    public static void getDel(MySqlCommand mySqlCommand)
    {
        try
        {
            mySqlCommand.ExecuteNonQuery();
        }
        catch (Exception ex)
        {
            String message = ex.Message;
            Console.WriteLine("删除数据失败了!" + message);
        }
    }
}

 

转载于:https://www.cnblogs.com/freeliver54/archive/2012/11/20/2778637.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/262244.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

通过点击切换文本框内容的脚本示例

定义一个字符串为内容的数组,每一行的多个文本框为一组,要求点击切换内容,且内容不重复. 代码 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">2 <html>3 <head>4 <title>New Document </title>5 <script>6 …

qmenu只在鼠标单击时消失_两种方法解决win10电脑无法使用无线鼠标问题

使用有线鼠标时用户们是否也都会被那条线控制住&#xff0c;有时需要大范围移动时并不行&#xff0c;现在很多用户都会选择使用无线鼠标&#xff0c;因为可以随意移动使用更加方便。但是在使用中也有用户遇到了麻烦&#xff0c;使用win10连接鼠标后无法使用&#xff0c;这是要怎…

蓝桥杯 带分数

来一个全排列&#xff0c;然后枚举跟/的位置&#xff0c;时间复杂度大概是&#xff0c;9。*28历届试题 带分数 时间限制&#xff1a;1.0s 内存限制&#xff1a;256.0MB问题描写叙述100 能够表示为带分数的形式&#xff1a;100 3 69258 / 714。 还能够表示为&#xff1a;10…

java tempfile read_Java 文件操作

Java 实例 - 文件写入以下实例演示了使用 write() 方法向文件写入内容&#xff1a;import java.io.*;public class WriteDemo {public static void main(String[] args) {try {BufferedWriter out new BufferedWriter(new FileWriter("runoob.txt"));out.write(&quo…

设置图片圆角 或者圆形

1.//用画图的方式设置圆角 mImageView.image[UIImage imageNamed:"bg1.png"]; mImageView.frameCGRectMake(center.x-radius, center.y-radius, 2*radius, 2*radius); mImageView.layer.cornerRadiusradius;//设置圆角半径 mImageView.layer.masksToBoundsYES; [mIma…

“Word.Tables”并不包含“Item”的定义的解决办法

C#调用WORD时出错如下&#xff1a; object missingValue Type.Missing;object location strInfo.Length; //如果location超过已有字符的长度将会出错。一定要比"明细表"串多一个字符 Word.Range rng2 wordDoc.Range(ref location,…

线程的几个状态

Runnable&#xff1a;一般指该线程正在执行状态中&#xff0c;该线程占用了资源&#xff0c;正在处理某个请求&#xff0c;例如有可能在对某个文件操作&#xff0c;有可能进行数据类型等转换。Waiting on condition&#xff1a;等待资源&#xff0c;或等待某个条件的发生。具体…

c++ 数组的输入遇到特定字符停止输入_滑动窗口思维--挑战“无重复字符的最长子串”

文章来源&#xff1a; 饭饭的Python学习之路作者&#xff1a; 一粒米饭今天要挑战的是“无重复字符的最长子串”。难度&#xff1a;中等题目描述&#xff1a;给定一个字符串&#xff0c;请你找出其中不含有重复字符的 最长子串 的长度。示例1:输入: "abcabcbb"输出: …

Effective C++ 读书笔记(八)

8 定制new和delete 条款49&#xff1a;了解new-handler的行为 new_handler set_new_handler (new_handler new_p) throw(); Sets new_p as the new handler function, the old one is returned. operator new抛出异常以反映一个未获满足的内存需求之前&#xff0c;它会先调…

12.8 早晨我一直在假笑,为了骗自己

最近不知道为啥&#xff0c;总是凌晨醒来&#xff0c;然后睡不着了就&#xff0c;再然后就会控制不住的想一些事情一些人一些工作。之前听别人这样说的时候&#xff0c;都觉得很奇怪,现在轮到自己了 大概是因为压力过大&#xff1f;精神已经超级紧绷啦&#xff1f;还是因为。。…

Restful HMAC认证

我们在设计REST(Representational State Transfer)风格的Web service API,有一个问题经常要考虑&#xff0c;就是如何设计用户认证的体系(Authentication). 比较传统的做法是首先有一个登陆的API&#xff0c;然后服务器返回一个session ID,后续的操作客户端都必须带上这个sess…

docker 打包_Springboot2.0学习11 使用maven插件打包docker部署应用

一、本文目标使用Maven插件构建SpringBoot应用的docker镜像镜像推送至Docker Registry启动容器本文开发环境 &#xff1a;jdk1.8mavenideaSpringBoot2.2本文使用 com.spotify 的 docker-maven-plugin插件执行docker命令。据说官方不再推荐使用该插件&#xff0c;而是使用 docke…

java一个源文件供一个程序_java02 Java源文件范例提供了一个布局合理的Java程序范例 - 下载 - 搜珍网...

新建文件夹/day04/CheckString.class新建文件夹/day04/CheckString.java新建文件夹/day04/EqualsTest.class新建文件夹/day04/EqualsTest.java新建文件夹/day04/ReferencesTest.class新建文件夹/day04/ReferencesTest.java新建文件夹/day04/SetPoints.class新建文件夹/day04/Se…

[转帖]Mootools源码分析-49 -- Asset

原帖地址&#xff1a;http://space.flash8.net/space/?uid-18713-action-viewspace-itemid-410355 原作者&#xff1a;我佛山人 代码 //脚本,样式和图片的资源加载varAsset newHash({ //脚本资源的加载javascrīpt: function(source, properties) { //合并属性项…

桌面壁纸大全:50套高清 Mac 桌面壁纸背景【下篇】

这篇文章收集一组非常精美的 Mac 高清桌面壁纸分享给大家&#xff0c;这些都是仔细挑选的完美图片。挑选一张自己最喜欢的 Mac 高清桌面壁纸给你的电脑换上&#xff0c;让你的电脑看起来与众不同。 您可能还喜欢 分享18套精美的苹果风格免费图标素材10套精美的免费网站后台管理…

SpeedyCloud研发总监李孟:不要让底层细节被上层打败

随着互联网的发展&#xff0c;对于现代企业来说&#xff0c;DNS与CDN服务的作用正变得愈发重要&#xff0c;网络访问速度决定了前端客户体验&#xff0c;同时也影响着内部业务系统的运行。SpeedyCloud作为一家新晋IaaS云服务供应商&#xff0c;在DNS与CDN方面同样拥有丰富的实践…

springboot 关闭懒加载_SpringBoot新手入门篇

SpringBoot是干哈的介绍&#xff1a;springboot是由Pivotal团队提供的全新框架。spring的出现是为了解决企业级开发应用的复杂性&#xff0c;spring的通过注册bean的方式来管理类&#xff0c;但是随着业务的增加&#xff0c;使用xml配置bean的方式也显得相当繁琐&#xff0c;所…

java.security.key jar_异常: java.security.InvalidKeyException: Illegal key size

今天在做接口测试的时候遇到个异常&#xff1a;java.security.InvalidKeyException: Illegal key size。SecretKeySpec secretKeySpec new SecretKeySpec(aesKey, "AES");Cipher cipher Cipher.getInstance("AES/CTR/NoPadding");IvParameterSpec ips c…

CACTI 0.87e 安装

Cacti 是一个使用 RRDtool 引擎的基于网页的 PHP/MySql 图形解决方案。 Classically, 它可以使用 SNMP 来绘制网络带宽。但事实上&#xff0c;也可以通过 snmp&#xff0c;shell 或者 perl 脚本来绘制很多不同的图形。在 屏幕截图 部分&#xff0c;你可以浏览使用 Cacti 可以绘…

NodeManager启动流程与服务

本文介绍了NodeManager的启动流程与服务. NodeManager主流程 在main方法中new一个 NodeManager, 然后初始化并启动. 这里主要看initAndStartNodeManager方法. 首先是增加一个shutDownHook, 即CompositeServiceShutdownHook, 它的目的是为了在NodeManager crash的时候停止compos…