vb连接sql数据库的源码(vb连接sql数据库实例)
本文目录一览:
- 1、vb连接SQL数据库,要代码
- 2、vb和sql数据库连接的代码
- 3、vb如何连接sql数据库,求源码
- 4、如何用vb链接sql的数据库
- 5、vb动态连接SQL数据库的代码
- 6、怎样在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