在VS2008中使用MySQL数据库

转载 2013年12月05日 14:05:30

在VS2008中使用MySQL数据库  

2010-07-08 17:05:06|  分类: C#|字号 订阅

在MySQL的官方网站上提供有.net的连接器安装程序(mysql-connector-net-6.2.3.zip),下载后直接安装,在进行数据源连接的时候就会出现MySQL数据连接的选项。具体的连接方法和MSSQL的一样这里就不多说了。只是MySQL默认的管理员用户是root而不是sa,仅此而已。

连接器本身只提供以ADO.Net方式连接MySQL数据库,因此这里也仅以ADO.Net的方式介绍一下与MSSQL的不同:

1、在引用命名空间时需要使用using MySql.Data.MySqlClient,而不是using System.Data.SqlClinet;

2、在连接数据库时使用MySqlConnection,而不是SqlConnection;

3、在数据适配器时使用MySqlDataAdapter,而不是SqlDataAdapter;

4、执行SQL操作命令使用MySqlCommand,而不是SqlCommand;

以上是使用进行数据库开发常用的类,当然,其他的还有很多,也就是说在原来SqlClient的基础上前面都加上了一个MySql,方法和属性和SqlClient大致相同,就可以使很方便的将之前基于MsSQL开发的数据库应用程序转移到MySql数据库平台上。

       以下是示例代码,演示的是在MySql的Test数据库的BaseUser表中添加和删除记录,红色字体代表与SqlClient不同之处,蓝色部分表示与SqlClient相同的方法,从代码中就可以看出,只需对原有代码进行小量修改就可以将现有的应用程序转移到MySql数据库上了:


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using MySql.Data.MySqlClient;//引用MySql的命名空间


namespace MySQLTest
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
              
      private void Form1_Load(object sender, EventArgs e)
        {            
            LoadData();            
        }

  
     //从数据库中重新加载数据 
     private void LoadData()
        {
            using (MySqlConnection thisConnection = new MySqlConnection(strConnectionString))
            {
                DataTable dt = new DataTable();
                string strQueryText = "select * from BaseUser";
                MySqlDataAdapter thisAdapter = new MySqlDataAdapter(strQueryText, thisConnection);

         thisAdapter.Fill(dt);
                dataGridView1.DataSource = dt;
            }
        }

//设定MySql数据库的连接字符
        const string strConnectionString = " server=127.0.0.1;User Id=root;password=123;Persist Security Info=True;database=test";

//添加用户
        private void btnAdd_Click(object sender, EventArgs e)
        {
            if (_txtUserID.Text != "" && _txtUserName.Text != "")
            {
                string strSqlCommand = "insert into BaseUser values('" +
                    _txtUserID.Text.Trim() + "','" + _txtUserName.Text.Trim() + "')";
                ExecuteQuery(strSqlCommand);
                LoadData();
            }
        }

//执行指定的SQL操作查询       
       private void ExecuteQuery(string strSqlCommand)
        {
            using (MySqlConnection thisConnection = new MySqlConnection(strConnectionString))
            {
                thisConnection.Open();
                MySqlCommand thisCommand = thisConnection.CreateCommand();
                thisCommand.CommandText = strSqlCommand;
                thisCommand.ExecuteNonQuery();                
            }
        }

//删除用户        
       private void btnDelete_Click(object sender, EventArgs e)
        {
            if (dataGridView1.SelectedRows.Count > 0)
            {
                foreach (DataGridViewRow dr in dataGridView1.SelectedRows)
                {
                    string strUserID = dr.Cells[0].Value.ToString().Trim();
                    ExecuteQuery("delete from BaseUser where ID ='" + strUserID.Trim() + "'");
                }
                LoadData();
            }            
        }
    }
}


转自:http://changmingzhi.blog.163.com/blog/static/29678048201068556452/



DataTable:数据表,和数据库的表一样
DataSet:数据集,里面由多个DataTable组成
MySQLDataAdapter:数据适配器,用于从数据库读取数据




            //数据库连接对象(连接到指定数据)
            SqlConnection conn = new SqlConnection("connection_string");
            SqlCommand cmd = conn.CreateCommand();//命令对象(用来封装需要在数据库执行的语句)
            cmd.CommandText = "select * from table";//设置sql文本


            //第一种方式,用数据适配器
            SqlDataAdapter sda = new SqlDataAdapter(cmd);
            DataTable dt = new DataTable();
            sda.Fill(dt);//这里也可以把数据查询结果填充到DataSet中


            //第二种方式
            conn.Open();
            SqlDataReader sdr = cmd.ExecuteReader();
            if (sdr.HasRows)
            {
                //循环读取返回的数据
                while (sdr.Read())
                {
                    string name = sdr.GetString(0);
                    int age = sdr.GetInt32(1);
                }
            }
            sdr.Close();
            conn.Close();
            //读取数据时SqlConnection和SqlCommand都是必须的
            //获取数据时你可以用SqlDataAdapter + DataTable或DataSet)的方式
            //也可以用SqlDataReader来循环遍历读取

vs2008下MFC中采用ado连接MySQL(ODBC、非ODBC或C API方式)

其实,以前弄过sql,mysql应该是顺理成章很简单的事情,但很无奈,傻傻地弄了很久,还请教了别人,别人告诉我的跟我在网上查到的都是一样的,但还是不行,归根接地就是“mysql-connector-o...
  • xuyuefei1988
  • xuyuefei1988
  • 2013年05月06日 20:52
  • 8050

基于VS2008的Wince系统的SQLCE3.5数据库开发应用实例

1.       概述 SQLCE3.5数据库安装以及扬创科技嵌入式WinCE工业平板电脑SQLCE和SQLServer数据库同步配置;安装步骤依次为IIS安装、客户端安装、服务端安装。 2.  ...
  • sqcg999
  • sqcg999
  • 2014年03月03日 12:49
  • 1869

MySQL:vs2008下c#连接MySQL数据库

MySQL:vs2008下c#连接MySQL数据库 首先我们在VS2008环境下新建一个C#工程 如下图 接着打开新建的工程  vs2008 已经帮我们写好了main函数 代码如下: ...
  • gold0523
  • gold0523
  • 2014年04月29日 22:52
  • 770

vs2008链接mysql数据库

1 在vs2008下创建一个win32控制台项目 2 在stdafx.h头文件添加如下包含 #include "winsock.h" #include "mysql.h" #pragma ...
  • u011036348
  • u011036348
  • 2013年06月17日 09:46
  • 470

vs2008和SQL Server使用ADO连接方法

学了几天ADO方法,今天也写一写教程~ 时间2012年10月20日 环境: 操作系统:win7- 64bit 编译器:VS2008 数据库:SQL Server 2000 说明: SQ...
  • a8082649
  • a8082649
  • 2014年03月12日 19:15
  • 3701

vs2008下用c++代码实现ACCESS的访问(DAO方式)

1、首先,在头文件中包含#include 头文件; 2、在对话框界面上增肌一个listBox控件,用来显示读取出来的数据; 3、增加一个写ACCESS的函数,该函数中检查若数据库已经存在,则直接...
  • dafenqie
  • dafenqie
  • 2016年12月07日 15:28
  • 838

VS2008C#Sqlserver2008数据库的连接,增删改查

using System.Data.SqlClient; ? 1 SqlConnection conn; ...
  • ssharet
  • ssharet
  • 2016年04月04日 21:08
  • 576

VS2008 入门基本操作

VS2008 入门操作 更新日期:2011-7-31 测试环境:VS2008+WinXP ━━━━━━━━━━━━━━━━━━━━━━━━ 这段时间正式开始使用VS2008。从VC...
  • chaozi2008
  • chaozi2008
  • 2013年06月17日 11:31
  • 8843

mysql数据库使用注意事项

[表设计] 1.VARCHAR(N),N表示的是字符数不是字节数,N尽可能小,因为MySQL一个表中所有的VARCHAR字段最大长度是65535个字节,进行排序和创建临时表一类的内存操作时,会使用N...
  • cakexuexi
  • cakexuexi
  • 2015年09月23日 17:17
  • 935

VS2008中编译和使用OpenSSL

一、编译OpenSSL 在编译OpenSSL前,需要正确安装Perl,因为在编译OpenSSL时需要使用到该程序。 下载最新版本的Perl:http://downloads.activestate...
  • xiaoting451292510
  • xiaoting451292510
  • 2015年06月19日 14:33
  • 24118
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在VS2008中使用MySQL数据库
举报原因:
原因补充:

(最多只允许输入30个字)