VS2010与mysql

一、C#读取mysql乱码
(1)连接mysql时设置charset:
            MySql.Data.MySqlClient.MySqlConnection conn;
            MySqlCommand myCommand = new MySqlCommand();
            string myConnectionString = "server=127.0.0.1; uid = root; pwd=;database=weibo; charset=utf8;";
            conn = new MySql.Data.MySqlClient.MySqlConnection(myConnectionString);
(2)创建数据库时,设置字符集:

            CREATE DATABASE db_name    CHARACTER SET utf8;

二、C存入到mysql乱码
连接mysql室设置字符集:
            MYSQL my_connection;
             int res;
             if (mysql_real_connect(&my_connection, "localhost", "root", "", "weibo", 0, NULL, 0)) {
                  if (!mysql_set_character_set(&my_connection, "utf8"))
                  {
                       cout << "Set character error " << mysql_character_set_name(&my_connection) << endl;
                 
 }
                  cout << "Connection DB success\n" << endl;
                //其他代码
            }

三、C#连接mysql
简要过程:1、下载MySQL Connector/NET: http://dev.mysql.com/downloads/connector/net/1.0.html
                   2、在Vs2010项目中,解决方案处点击“引用”-“添加引用”,在“.NET “下选择“Mysql.Data”。之后就可以在C#中编写操作Mysql数据库的代码了。




-----------------------------------------------------------分割线--------------------------------------------------------------------------------
以下转载
完整解决过程: http://www.codeproject.com/Articles/21919/Connecting-to-MySQL-from-Visual-Csharp

Connecting to the Database from C#

What will allow us to work with the data in any MySQL database from C# is a reference to the MySql.Data assembly, which is registered into the Global Assembly Cache after the MySQL Connector/NET installation. First, create a new Console Application project in Visual C#. You may call it MySQLDBConnection or whatever name you decide. Now in the Solution Explorer within the Visual C# IDE, right click on the References folder and choose Add Reference... as shown below:

In the Add Reference dialog box that appears, select the MySQL.Data item from the list:

Now, after doing that, we must add the using MySql.Data.MySqlClient statement to our code in the Visual C# IDE:

Below you will find the basic lines of code needed to perform the connection to any MySQL database from C#:

using System;
using System.Data;
using System.Data.Common;
using System.Collections.Generic;
using System.Text;
using MySql.Data.MySqlClient;

namespace MySQLDBConnection
{
    class Program
    {
        static void Main(string[] args)
        {
            MySqlConnectionStringBuilder connBuilder = new MySqlConnectionStringBuilder();

            connBuilder.Add("Database", "shop");
            connBuilder.Add("Data Source", "localhost");
            connBuilder.Add("User Id", "root");
            connBuilder.Add("Password", "masterkey");

            MySqlConnection connection = new MySqlConnection(connBuilder.ConnectionString);

            MySqlCommand cmd = connection.CreateCommand();

            connection.Open();

            // Here goes the code needed to perform operations on the
            // database such as querying or inserting rows into a table

            connection.Close();
        }
    }
}

Notice that I've decided to use the MySqlConnectionStringBuilder class instead of putting all the connection items into a single string. This promotes better readability and maintainability of your code.

First, we start by adding a reference to the MySql.Data.MySqlClient namespace in our code. Then we create a MySqlConnectionStringBuilder instance and we add pairs of name/value items for the database name, data source, user ID and password. After that, we create an instance of the MySqlConnection class and we pass the ConnectionString from our MySqlConnectionStringBuilder instance as a parameter.

Let's create the following two methods within the Program class. One is for reading the contents of the table we are working with and the other is for appending new data into it.

public static void QueryCommand(MySqlCommand cmd)
{
    cmd.CommandText = "SELECT * FROM article";
    cmd.CommandType = CommandType.Text;

    MySqlDataReader reader = cmd.ExecuteReader();

    while (reader.Read())
    {
        Console.WriteLine(String.Format("{0}, {1}, {2}",
            reader.GetInt32(0), reader.GetString(1), reader.GetDouble(2))
        );
    }

    reader.Close();
}

public static void InsertCommand(MySqlCommand cmd, string name, double price)
{
    cmd.CommandText = "append_data";
    cmd.CommandType = CommandType.StoredProcedure;

    cmd.Parameters.Add(new MySqlParameter("param_name", name));
    cmd.Parameters.Add(new MySqlParameter("param_price", price));

    cmd.ExecuteNonQuery();
}

Now let's add some code between the connection.Open() and connection.Close() statements to perform some basic operations on the database.

InsertCommand(cmd, "MQ95 Flat Monitor", 399.00);
QueryCommand(cmd);


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值