zoukankan      html  css  js  c++  java
  • 【C#】使用MySql.Data.dll连接MySQL数据库

    准备工作

    在Visual Studio中新建一个C#的控制台应用程序。

    确保后台已经启用了MySQL57服务。

    在MySQL的安装路径下找到DLL,默认位置是 C:Program Files (x86)MySQLConnector.NET 6.9Assembliesv4.5MySql.Data.dll 。

    更多写代码连接MySQL的方法(通过MySQLConnector连接器),参考文档 C:Program Files (x86)MySQLConnector.NET 6.9DocumentationConnectorNET.chm 。在文档的Users Guide-Programming中有代码案例。

    把MySql.Data.dll引入项目中。v4.5表示.NetFramework框架的版本号,一定要保证使用的DLL与项目的.NetFramework版本一致,否则运行时报错找不到DLL,报错如下:

    1>F:LearningCSharpConnectMySQLCSharpConnectMySQLProgram.cs(1,7,1,12): error CS0246: The type or namespace name 'MySql' could not be found (are you missing a using directive or an assembly reference?)

     测试增删改查

    using MySql.Data.MySqlClient;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace CSharpConnectMySQL
    {
        class Program
        {
            static void Main(string[] args)
            {
                // 服务器地址;端口号;数据库;用户名;密码
                string connectStr = "server=127.0.0.1;port=3306;database=mygamedb;user=root;password=root"; // 用户名和密码在MySQL定义的
                // 创建连接
                MySqlConnection conn = new MySqlConnection(connectStr);
    
                try
                {
                    // 打开连接
                    conn.Open();
                    Console.WriteLine("已经建立连接");
    
                    //Query(conn);  // 测试查询
                    //Insert(conn); // 测试插入
                    //Update(conn); // 测试更新
                    //Delete(conn); // 测试删除
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.ToString());
                }
                finally
                {
                    // 关闭连接
                    conn.Close();
                    Console.WriteLine("数据库已关闭");
                }
    
                Console.ReadKey();
            }
    
            /// <summary>
            /// 查询
            /// </summary>
            /// <param name="conn"></param>
            private static void Query(MySqlConnection conn)
            {
                // 创建命令
                string sql = "select * from users";
                MySqlCommand cmd = new MySqlCommand(sql, conn);
                // 读取数据
                MySqlDataReader reader = cmd.ExecuteReader();
                while (reader.Read()) // true表示能读取该行数据
                {         
             // 方式一:访问数组

             Console.WriteLine(reader[
    0].ToString() + reader[1].ToString()); // reader[0]是读出来的第一列属性
                    // 方式二:根据列数
            
    Console.WriteLine(reader.GetInt32(0));
                    // 方式三:根据列名
             Console.WriteLine(reader.GetInt32("user_id")); } }
    /// <summary> /// 插入,增加数据 /// </summary> /// <param name="conn"></param> private static void Insert(MySqlConnection conn) { // 创建命令 string sql = "insert into user(user_name, user_pwd) values('asdAa','2345')"; MySqlCommand cmd = new MySqlCommand(sql, conn); // 添加一条记录 int result = cmd.ExecuteNonQuery(); Console.WriteLine("数据库中受影响的行数 = " + result); } /// <summary> /// 更新,改数据 /// </summary> /// <param name="conn"></param> private static void Update(MySqlConnection conn) { // 创建命令 string sql = "update user set user_name = 'newName', user_pwd = '66777' where user_id = '3'"; MySqlCommand cmd = new MySqlCommand(sql, conn); // 更新记录 int result = cmd.ExecuteNonQuery(); Console.WriteLine("数据库中受影响的行数 = " + result); } /// <summary> /// 删除数据 /// </summary> /// <param name="conn"></param> private static void Delete(MySqlConnection conn) { // 创建命令 string sql = "delete from user where user_id = '4'"; MySqlCommand cmd = new MySqlCommand(sql, conn); // 删除记录 int result = cmd.ExecuteNonQuery(); Console.WriteLine("数据库中受影响的行数 = " + result); } } }

    传参拼接SQL语句

            /// <summary>
            /// 验证用户名和密码
            /// </summary>
            /// <param name="conn"></param>
            /// <param name="userName"></param>
            /// <param name="password"></param>
            /// <returns></returns>
            private static bool Verify(MySqlConnection conn, string userName, string password)
            {
                // 方式一:组拼sql
                //string sql = "select * from user where user_name = '" + userName + "' and user_pwd = '" + password + "'";
                //MySqlCommand cmd = new MySqlCommand(sql, conn);
    
                // 方式二:参数标记
                string sql = "select * from user where user_name = @p1 and user_pwd = @p2";
                MySqlCommand cmd = new MySqlCommand(sql, conn);
                cmd.Parameters.AddWithValue("p1", userName); // 这里会根据输入的类型,自动判断要不要加单引号''
                cmd.Parameters.AddWithValue("p2", password);
    
                MySqlDataReader reader = cmd.ExecuteReader();
                if (reader.Read()) // 要么查出一条数据,要么0条。
                {
                    return true;
                }
    
                return false;
            }

      

  • 相关阅读:
    1099. Build A Binary Search Tree (30)
    两个新事物
    time.h
    Nohup命令
    进程锁
    C++中虚析构函数的作用
    c++ 修改stl set中的元素
    STL迭代器辅助函数——advance
    CTreeCtrl 控件使用总结
    关于stl advance函数移动步数超过容器大小(越界)的研究
  • 原文地址:https://www.cnblogs.com/guxin/p/csharp-connect-mysql-database.html
Copyright © 2011-2022 走看看