• VB6 如何连接MYSQL数据库


    1 从官网下载MYSQL的ODBC,选择与自己操作系统对应的版本(前提是你安装了MYSQL)

    http://dev.mysql.com/downloads/connector/odbc/

     

    2 安装完成之后,搜索数据源,你可以发现刚才装好的MYSQL ODBC驱动

     

    3 新建一个VB6的工程,引用microsoft activex data objects 2.8 library

     

    4 在这个VB6的工程中,复制粘贴以下代码(所有代码都在Form_Load中,不需要做别的什么按钮,控件),其中红色部分是你需要修改的代码

    Private Sub Form_Load()

     

    ' 定义并创建数据库连接和访问对象

    Dim cn As New ADODB.Connection

    Dim rs As New ADODB.Recordset

     

    ' 定义数据库连接字符串变量

    Dim strCn As String

     

    ' 定义数据库连接参数变量

    Dim db_host As String

    Dim db_user As String

    Dim db_pass As String

    Dim db_data As String

     

    ' 定义 SQL 语句变量

    Dim sql As String

    ' 能连接得上数据库(即便主机端口是8080,也没事)

    ' 初始化数据库连接变量

    '连接的主机名

    db_host = "localhost"

    '连接的用户名

    db_user = "root"

    '连接的密码

    db_pass = "123456"

    '连接的表名

    db_data = "vb_test"

     

     

    ' MySQL ODBC 连接参数

    '+------------+---------------------+----------------------------------+

    '| 参数名 | 默认值 | 说明 |

    '+------------+------------------------------------------------------–+

    '| user | ODBC (on Windows) | MySQL 用户名 |

    '| server | localhost | MySQL 服务器地址 |

    '| database | | 默认连接数据库 |

    '| option | 0 | 参数用以指定连接的工作方式 |

    '| port | 3306 | 连接端口 |

    '| stmt | | 一段声明, 可以在连接数据库后运行 |

    '| password | | MySQL 用户密码 |

    '| socket | | (略) |

    '+------------+---------------------+----------------------------------+

     

    ' 详细查看官方说明

    ' http://dev.mysql.com/doc/refman/5.0/en/myodbc-configuration-connection-parameters.html

    ' 数据源驱动要对的上(一个字都不能差!!!)

    strCn = "DRIVER={MySQL ODBC 5.2 ANSI Driver};" & _

    "SERVER=" & db_host & ";" & _

    "DATABASE=" & db_data & ";" & _

    "UID=" & db_user & ";PWD=" & db_pass & ";" & _

    "OPTION=3;stmt=SET NAMES GB2312"

     

    ' stmt=SET NAMES GB2312

    ' 这句是设置数据库编码方式

    ' 中文操作系统需要设置成 GB2312

    ' 这样中文才不会有问题

    ' 版本要求 mysql 4.1+

     

    ' 连接数据库

    cn.Open strCn

    ' 设置该属性, 使 recordcount 和 absolutepage 属性可用

    cn.CursorLocation = adUseClient

     

    ' 表要对的上

    ' 访问表 tg_user

    sql = "select * from tg_user"

    rs.Open sql, cn

    MsgBox rs.RecordCount

     

    End Sub

     

    5 然后就能连接上了(见本文最后附上的代码,包括了所有数据库的常见操作:插入,修改,查询,删除)

     

    Private Sub Form_Load()

     

    ' 定义并创建数据库连接和访问对象

    Dim cn As New ADODB.Connection

    Dim rs As New ADODB.Recordset

     

    ' 定义数据库连接字符串变量

    Dim strCn As String

     

    ' 定义数据库连接参数变量

    Dim db_host As String

    Dim db_user As String

    Dim db_pass As String

    Dim db_data As String

     

    ' 定义 SQL 语句变量

    Dim sql As String

     

    ' 初始化数据库连接变量

    '连接的主机名

    db_host = "localhost"

    '连接的用户名

    db_user = "root"

    '连接的密码

    db_pass = "123456"

    '连接的表名

    db_data = "vb_test"

     

    ' MySQL ODBC 连接参数

    '+------------+---------------------+----------------------------------+

    '| 参数名 | 默认值 | 说明 |

    '+------------+------------------------------------------------------–+

    '| user | ODBC (on Windows) | MySQL 用户名 |

    '| server | localhost | MySQL 服务器地址 |

    '| database | | 默认连接数据库 |

    '| option | 0 | 参数用以指定连接的工作方式 |

    '| port | 3306 | 连接端口 |

    '| stmt | | 一段声明, 可以在连接数据库后运行 |

    '| password | | MySQL 用户密码 |

    '| socket | | (略) |

    '+------------+---------------------+----------------------------------+

     

    strCn = "DRIVER={MySQL ODBC 5.2 ANSI Driver};" & _

    "SERVER=" & db_host & ";" & _

    "DATABASE=" & db_data & ";" & _

    "UID=" & db_user & ";PWD=" & db_pass & ";" & _

    "OPTION=3;stmt=SET NAMES GB2312"

     

    ' stmt=SET NAMES GB2312

    ' 这句是设置数据库编码方式

    ' 中文操作系统需要设置成 GB2312

    ' 这样中文才不会有问题

    ' 版本要求 mysql 4.1+

     

    ' 连接数据库

    cn.Open strCn

    ' 设置该属性, 使 recordcount 和 absolutepage 属性可用

    cn.CursorLocation = adUseClient

     

    ' 访问表 tg_user

    'sql = "select * from tg_user"

    'rs.Open sql, cn

    '返回所有记录的条数

    'MsgBox rs.RecordCount

     

    'cn现在就是SQL的操作对象,一切与数据库操作的都是cn的事情

     

    '插入数据 如果数据库已经存在主键,则主键不能重复!!!

    '如果这个字段是字符串,一定要加''

     

    'cn.Execute "INSERT INTO 表名 (字段名1,字段名2) values('数据1','数据2')"

    'cn.Execute "INSERT INTO tg_user(user_name,password) values('bbb','998877')"

    'cn.Execute "INSERT INTO tg_user(user_name,password) values('ccc','998877')"

    'MsgBox ("插入成功")

     

    '修改数据 如果没找到这个字段符合的记录,则自动结束,不会报错

    'cn.Execute "UPDATE tg_user set user_name='ddd' WHERE user_name= 'ccc'"

    '如果是变量,或者要更新的不止一条记录,则代码参考下面,没找到也不会报错

    'new_username = "eee"

    'new_password = "222222"

    'cn.Execute "UPDATE tg_user set user_name='" & new_username & "', password='" & new_password & "'WHERE user_name= 'ccc'"

    'MsgBox ("修改成功")

     

    '删除数据 如果没找到这个字段符合的记录,则自动结束,不会报错

    'cn.Execute "DELETE FROM tg_user WHERE user_name = 'ccc'"

    '如果是变量,则还是加'"& 变量名 &"'

    'new_username = "eee"

    'cn.Execute "DELETE FROM tg_user WHERE user_name = '" & new_username & "'"

    'MsgBox ("删除成功")

     

    '查询数据

    current_username = "abc"

    sql = "select * from tg_user"

    rs.Open sql, cn

    '返回取得的第一条记录,如果要输出这条记录的第一个字段,就是rs.Fields(0),第二个字段就是rs.Fields(1)

    'MsgBox ("user_name:" & rs.Fields(0))

    'MsgBox ("password:" & rs.Fields(1))

     

    '如果取得的不止一条记录,则用rs.MoveNext 让指针指向下一条记录

     

    While rs.EOF = False '如果EOF为真,则表示"游标"已经在最后一条记录后面。

    MsgBox ("user_name:" & rs.Fields(0) & "||password:" & rs.Fields(1))

    rs.MoveNext

    Wend

     

     

    End Sub

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    Vue整合nginx:(1)开发环境npm run dev下,通过nginx解决前后端分离造成的跨域问题
    SpringBoot 整合 ActiveMq
    SpringBoot 整合 slf4j 日志打印
    Java 抽象类的简单使用
    MongoDB基本使用
    node.js修改全局安装文件路径
    Vue + iview框架,搭建项目遇到的相关问题记录
    ThinkPHP重写路由,掩藏public/index.php
    thinkPhP + Apache + PHPstorm整合框架
    Ionic3,装饰器(@Input、@ViewChild)以及使用 Events 实现数据回调中的相关用法(五)
  • 原文地址:https://www.cnblogs.com/acetaohai123/p/6600749.html
Copyright © 2020-2023  润新知