b2c信息网

您现在的位置是:首页 > 热点事件 > 正文

热点事件

vb连接sql数据库的源码(vb连接sql数据库实例)

hacker2022-06-13 08:04:25热点事件51
本文目录一览:1、vb连接SQL数据库,要代码

本文目录一览:

vb连接SQL数据库,要代码

给你一个示例代码吧

Private Sub cmdOK_Click()

Static nErr As Integer

Dim bErr As Boolean

Dim conn As ADODB.Connection

Dim rs As ADODB.Recordset

Dim strSql As String

If txtUser.Text = "" Or txtPwd.Text = "" Then

MsgBox "用户或密码不能为空!", vbCritical, "错误"

bErr = True

Else

Set conn = OpenConnForSqlServer("127.0.0.1\SQLEXPRESS", "xsfh", "")

strSql = "select * from users where name = '" txtUser.Text "' and password='" txtPwd.Text "'"

Set rs = OpenRecordset(strSql, conn)

If rs.EOF Then

MsgBox "错误的用户名或密码!", vbCritical, "错误"

bErr = True

Else

Unload Me

frmMain.Show

End If

End If

If bErr Then

nErr = nErr + 1

If nErr = 3 Then

Unload Me

Else

txtUser.Text = ""

txtPwd.Text = ""

txtUser.SetFocus

End If

End If

End Sub

Public Function OpenConnForSqlServer(ByVal ServerName As String, ByVal UserId As String, ByVal PassWord As String, Optional ByVal DateBaseName As String = "") As ADODB.Connection

Dim AdoConn As New ADODB.Connection

Dim strConn As String

With AdoConn

strConn = "Provider=SQLOLEDB.1;Persist Security Info=True;User ID=" UserId ";Password=" PassWord ";Data Source=" ServerName

If DateBaseName "" Then strConn = strConn ";database=" DateBaseName

.ConnectionString = strConn

.Open

End With

Set OpenConnForSqlServer = AdoConn

End Function

Public Function OpenConnForSqlServerByWin(ByVal ServerName As String, Optional ByVal DateBaseName As String = "") As ADODB.Connection

Dim AdoConn As New ADODB.Connection

Dim strConn As String

With AdoConn

strSql = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Data Source=" ServerName

If DateBaseName "" Then strConn = strConn ";Initial Catalog=" DateBaseName

.ConnectionString = strConn

.Open

End With

Set OpenConnForSqlServerByWin = AdoConn

End Function

Public Function OpenRecordset(ByVal strSql As String, ByVal AdoConn As ADODB.Connection) As ADODB.Recordset

Dim rs As New ADODB.Recordset

With rs

.CursorLocation = adUseClient

.CursorType = adOpenDynamic

.Open strSql, AdoConn, , , adCmdText

End With

Set OpenRecordset = rs

End Function

Public Function RunTrans(ByVal tranSql As String, ByVal AdoConn As ADODB.Connection)

With AdoConn

.BeginTrans

.Execute tranSql

.CommitTrans

End With

End Function

vb和sql数据库连接的代码

提前申明,转自别人的博客,供参考!希望可以帮到你,助人为乐!

第一步,在ModConString模块中定义一系列变量

'定义一个属性过程反映连接字符串

Public Property Get conString() As Variant

conString =

"data source=.;initial catalog=Sims_four;user

End

Property

'定义一个提供者反映数据库类型

Public Property Get conProvide() As

Variant

conProvide = "sqloledb"

End Property

第二步,建立一个类OpenRs.cls

Option Explicit

Private cnSIMS As ADODB.Connection

'声明一个连接

Private rsSims As ADODB.Recordset '声明一个连接记录集

Public rs1 As ADODB.Recordset '声明一个连接到所需表的记录集

Public

rs2 As ADODB.Recordset

Public rst As ADODB.Recordset

Private Data As

Object

'---------------------------------------------------------

'

在类初始化时建立连接

'---------------------------------------------------------

Private

Sub Class_Initialize()

On Error GoTo DbnotOpen

Set cnSIMS = New

ADODB.Connection

With cnSIMS

.Provider = conProvide

.ConnectionString = conString

.ConnectionTimeout = 10

.Open

Set rst = New ADODB.Recordset

End With

Exit

Sub

DbnotOpen:

If Err = -2147467259 Then

Set cnSIMS =

Nothing

MsgBox "连接后台数据库失败!" vbCrLf vbCrLf

"请检查配置是否完好,数据库Sims_four是否存在?", vbOKOnly + vbInformation, "学生信息管理系统"

End

End If

End

Sub

'---------------------------------------------------------

'data是一个指向ADO记录集的对象的引用

'用于设置class的数据源内容

'---------------------------------------------------------

Private

Sub Class_GetDataMember(DataMember As String, Data As Object)

Set Data =

rsSims

End Sub

'-------------------------------------------------------

'建立一个可以打开记录集的函数,需要是必须把表名传给函数

'-------------------------------------------------------

Public

Function rsDK(Table As String)

Set rsSims = New ADODB.Recordset

With rsSims

.Source = Table

.ActiveConnection = cnSIMS

.CursorType = adOpenKeyset

.LockType = adLockOptimistic

.Open , ,

, , adCmdTable

End With

End

Function

'-------------------------------------------------------

'建立一个可以打开记录集(动态游标)的函数

'需要把SQL语句传递给函数

'-------------------------------------------------------

Public

Function rsDK1(sql As String)

Set rs1 = New ADODB.Recordset

With

rs1

.Source = sql

.ActiveConnection = cnSIMS

.CursorType =

adOpenKeyset

.LockType = adLockOptimistic

.Open , , , ,

adCmdText

End With

End

Function

'-------------------------------------------------------

'建立一个可以打开记录集(静态游标)的函数

'需要把SQL语句传递给函数

'-------------------------------------------------------

Public

Function rsDK2(sql As String)

Set rs2 = New ADODB.Recordset

With

rs2

.Source = sql

.ActiveConnection = cnSIMS

.CursorType =

adOpenStatic

.LockType = adLockOptimistic

.Open , , , ,

adCmdText

End With

End

Function

'-------------------------------------------------------

'类终止时,释放一切可能占据的资源

'-------------------------------------------------------

Private

Sub Class_Terminate()

Set cnSIMS = Nothing

Set rs1 =

Nothing

Set rs2 = Nothing

Set rsSims = Nothing

Set rst =

Nothing

End Sub

第三步,在窗体中使用这个类

Option Explicit

Dim myModiStudent As OpenRs '声明连接数据库的类

Private Sub

Form_Load()

Set myModiStudent = New OpenRs

myModiStudent.rsDK1 "SELECT *

FROM student_info" ’打开表,红字是表名

If Not myModiStudent.rs1.EOF Then

Set

StudentGrid.DataSource = myModiStudent.rs1 ’这里用到了MSHFlexGrid 控件

End

If

End Sub

vb如何连接sql数据库,求源码

Dim conn As New ADODB.Connection '创建一个 Connection 实例,在这里使用New等于将Dim和Set合并为一段代码执行

Dim rs As ADODB.Recordset '创建一个 Recordset 实例,不使用New 是因为,经常需要重复使用Set,因此没必要在这里使用

Dim CnStr As String, Sql As String '创建两个字符串变量分别存放两个集合的SQL语句代码段

1、装载数据库(不属于Recordset集合)

=============

Dim FileNamw$, DbIp$, DbName$, DbUser$, DbPw$

'以上5个字符串变量分别表示文件路径和文件名、数据库地址、数据库名、数据操作员用户名、操作员密码

FileName = App.Path "\'数据库名'"

DbIp = "数据库地址"

DbName = "数据库名"

DbUser = "数据操作员用户名"

DbPw = "操作员密码"

'以上变量根据数据库类型的不同而不同,有可能只需要1至两个变量

'1)连接Access数据库:

'-------------------

CnStr = "PROVIDER=microsoft.jet.oledb.3.51;persist security info =false;data source=" FileName ";Jet OLEDB:Database Password=" DbPw

'2)连接Oracle数据库:

'-------------------

CnStr = "PROVIDER=MSDAORA.1;Password=" DbPw ";User ID=" DbUser ";Data Source=" FileName ";Persist Security Info=True"

'其中:

'PASSWORD: 密码

'User ID: 用户号

'Data Source: 数据库名

'Persist Security Info:

'Provider:

'3)连接VF的DBF库:

'----------------

CnStr = "PROVIDER=MSDASQL.1;Persist Security Info=False;Driver={Microsoft Visual FoxPro Driver};UID=" DbUser ";SourceDB=" FileName

";SourceType=DBF;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;"

'4)连接SQL的数据库

'------------------

CnStr = "PROVIDER=MSDataShape;Data PROVIDER=MSDASQL;uid=" DbUser ";pwd=" DbPw ";DRIVER=SQL Server;DATABASE=" DbName ";WSID=GQSOFT;SERVER="

DbIP

'也可以使用这段简易代码 CnStr = "Provider=SQLOLEDB;Data Source=" DbIp ";DATABASE=" DbName ";UID=" DbUser ";pwd=" DbPw

Conn.Open cnstr '使用 Connection 集合的 Open 方法 与数据库建立连接

2、Recordset集合的常用方法

==========================

'1)打开一个表

'------------

Sql = "select * from 表名" 'SQL查询语句

Set rs = New ADODB.Recordset '新建一个实例

rs.Open Sql, conn '使用 Open 方法打开数据库中的一个表

'注意,这种打开方式只能使用 rs.MoveNext (即,向后移动行坐标)而不能像其他方向,并且不能修改数据内容

'

'rs.Open Sql, conn,1 '虽然只加了个“1”,但这种方法可以向任何方向移动行坐标。

'

'以下参数代表了这个可选值的含义

'0 = adOpenForwardOnly (默认值)打开仅向前类型游标。

'1 = adOpenKeyset 打开键集类型游标。

'2 = adOpenDynamic 打开动态类型游标。

'3 = adOpenStatic 打开静态类型游标。

'

'虽然使用以上方法可以可以实现行坐标(游标)的任意移动,但是仍然无法写入数据。因此需要进一步的对Open 方法进行完善

'rs.Open Sql, conn, 1, 3 '后面的3是确定读写权限的

'以下参数代表了这个可选值的含义

'1 = adLockReadOnly (默认值)只读 — 不能改变数据。

'2 = adLockPessimistic 保守式锁定(逐个) — 在编辑时立即锁定数据源的记录。

'3 = adLockOptimistic 开放式锁定(逐个) — 只在调用 Update 方法时才锁定记录。

'4 = adLockBatchOptimistic 开放式批更新 — 用于批更新模式(与立即更新模式相对)。

'

'2)读写数据

'----------

'增加一行记录并对新记录的内容进行修改并保存可以如下写法

rs.AddNew '增加一行记录

rs("...")="..." '数据读写操作

...

rs.UpDate '保存写入资料,如果使用只读权限,则不能使用这个方法

rs.Close '这个方法用来关闭你所代开的表,如果不使用这个方法也可以,但是数据库仍然认为你在对标进行锁定,可造成数据库负担过重

2、对数据进行筛选和排序

=======================

Sql = "select * from 表名" 'SQL查询语句

'以上为打开一个表的所有内容

Sql = "select top 50 * from 表名" 'SQL查询语句

'以上为只打开前50行的记录

Sql = "select top 50 列名1,列名2,列名5 from 表名" 'SQL查询语句

'以上为只打开前50行的记录,并且只打开第1、2、5列数据

Sql = "select * from 表名 where 列名1='" 字段 "'" 'SQL查询语句

'以上为一个简单的筛选,表示打开的内容必须符合[列名1='" 字段 "'"]的内容

'需要注意的是,数据库列的类型必须匹配,比如字符串类型需要以单引号括起

'而数字类型则不能用单引号括起

'另外SQL语句还支持通配符,例如 列名1 like '%" 字段 "%'" 表示包含[字段]

'在表达式中的匹配

'? _(下划线) 任何单一字符

'* or % 零个或多个字符

'# 任何单一数字(0 — 9)

'[charlist] 任何在字符表中的单一字符

'[!charlist] 任何不在字符表中的单一字符

'注:根据数据库的不同?、_和*、%的应用有所差别,比如SQL只使用% 和 _ 分别代表多个字符和单一字符

Sql = "select * from 表名 where 列名1='" 字段 "' ORDER BY 字段1 ASC" '对查询结果进行升序排列

Sql = "select * from 表名 where 列名1='" 字段 "' ORDER BY 字段1 DESC" '对查询结果进行降序排列

Sql = "select * from 表名 where 列名1='" 字段 "' ORDER BY 字段1 DESC, ORDER BY 字段2 DESC" '对查询结果进行多维降序排列(速度奇慢,不推荐使用)

3、Recordset集合的常用属性方法

==============================

rs.BOF '是否游标在最上边

rs.EOF '是否游标在最下边

rs.RecordCount '记录集的行数(如果使用像前类型的游标,可能返回不准确)

rs.AddNew '新建一行记录

rs.Update '保存当前行被修改的记录

rs.Delete '删除当前行

rs.Close '关闭记录集

4、Fields集合的一些属性的解释

=============================

'以下为简写,正常情况需要rs.Fileds.。。。但是Fields属于Recordset的一个默认集合,因此可以省略

rs() '括号内可以是列名也可以是列的序号例如:rs("姓名")、rs(3) 都是是可以的

rs(3).Name '返回列名

rs(3).Type '返回列的类型

rs(3).Value '返回当前行的值

rs.Fields.Count '返回列数

如何用vb链接sql的数据库

这段代码写在模块中,可以连接一个数据库

Public

DBConnct

As

New

ADODB.Connection

'连接数据库

Public

Function

Connt()

As

Boolean

'数据库连接函数

Dim

splstr

As

String

'App.Path

"\db\123.mdb为数据库路径

splstr

=

"Provider=Microsoft.Jet.OLEDB.4.0;Data

Source="

App.Path

"\db\123.mdb"

";Persist

Security

Info=False"

DBConnct.Open

splstr

'连接数据库

Connt

=

True

End

Function

vb动态连接SQL数据库的代码

在模块中定义

public servername

public dataname

public cn as adodb.connection

------

public sub conn(byval serveranme,byval dataname)

set cn as new adodb.connection

cn.open "driver={sql server};server=" servername ";" "uid=sa;pwd=;database=" dataname"

-----

end sub

大概就这样子

怎样在vb中访问sql数据库。代码是什么?

On

Error

GoTo

err

Dim

cn

As

New

ADODB.Connection

'有密码的连接:

'cn.ConnectionString

=

"Provider=SQLOLEDB.1;Persist

Security

Info=False;User

ID=登陆用户名;Password=登录密码;Initial

Catalog=数据库名;Data

Source=服务器别名"

'无密码的连接:

cn.ConnectionString

=

"Provider=SQLOLEDB.1;Integrated

Security=SSPI;Persist

Security

Info=False;Initial

Catalog=数据库名;Data

Source=服务器别名"

cn.CursorLocation=adUseClient'设置客户端游标

cn.Open

发表评论

评论列表

  • 辞眸馥妴(2022-06-13 11:28:40)回复取消回复

    ing模块中定义一系列变量'定义一个属性过程反映连接字符串Public Property Get conString() As VariantconString = "data source=.;in

  • 孤鱼轻禾(2022-06-13 14:33:07)回复取消回复

    OpenKeyset 打开键集类型游标。 '2 = adOpenDynamic 打开动态类型游标。 '3 = adOpenStatic 打开静态类型游标。''虽然使用以上方法可以

  • 末屿溇涏(2022-06-13 17:02:04)回复取消回复

    tion cn.open "driver={sql server};server=" servername ";" "uid=sa;pwd=;databa

  • 只影鸽屿(2022-06-13 19:12:22)回复取消回复

    l tranSql As String, ByVal AdoConn As ADODB.Connection) With AdoConn .BeginTrans .Execute tranSql .CommitTrans

  • 颜于青迟(2022-06-13 15:49:43)回复取消回复

    符串Public Property Get conString() As VariantconString = "data source=.;initial catalog=Sims_four;user