vb数据库的连接
你在SQL SERVER中新建一个数据库,然后将这个数据库生成脚本文件,根据情况修改后转存为MASTER下的一个存储过程。至于数据库名和数据文件路径可以做成参数传入,然后在VB中用连到MASTER后执行这个存储过程。
用VB与建立的SQL数据库连接
1.使用ODBC DSN连接字符串
DSN=mySystemDSN;Uid=myUsername;Pwd=myPassword
----------------------------------------------
2.使用无ODBC DSN的连接字符串
(1)标准安全性
Driver={SQL Server};Server=MyServerName;DataBase=myDatabaseName; _
Uid=myUsername;Pwd=myPassword
------------------------------------------------
(2)信任连接(分两种)
1)连接字符串1
Driver={SQL Server};Server=MyServerName;DataBase=myDatabaseName;Uid=;Pwd=;
2)连接字符串2
Driver={SQL Server};Server=MyServerName;DataBase=myDatabaseName;Trusted_Connection=yes
---------------------------------------------------------------------------
(3)连接本地SQL SERVER
Driver={SQL Server};Server=(local);DataBase=myDatabaseName; _
Uid=myUsername;Pwd=myPassword
-------------------------------------------------------------
(4)连接远程SQL SERVER
Driver={SQL Server};Server=xxx.xxx.xxx.xxx; _
Address=xxx.xxx.xxx.xxx,1433; _
Network=DBMMSOCN;DataBase=myDatabaseName; _
Uid=myUsername;Pwd=myPassword
-------------------------------------------------------
3.使用OLEDB PROVIDER FOR SQL SERVER的连接字符串
(1)标准安全性
Provider=SQLOLEDB.1; _
Password=myPassword; _
User ID=myUsername; _
Initial Catalog=myDatabaseName; _
Data Source=MyServerName
-------------------------------------------
(2)信任连接
Provider=SQLOLEDB.1; _
Initial Catalog=myDatabaseName; _
Data Source=MyServerName; _
Integrated Security=SSPI
--------------------------------------
(3)连接到命名实例
Provider=SQLOLEDB.1; _
Initial Catalog=myDatabaseName; _
Data Source=myServerName\myInstanceName; _
Password=myPassword; _
User ID=myUsername
--------------------------------------
(4)连接到本地SQL SERVER
Provider=SQLOLEDB.1; _
Password=myPassword; _
User ID=myUsername; _
Initial Catalog=myDatabaseName; _
Data Source=(local)
-----------------------------------------
(5)连接到远程SQL SERVER
Provider=SQLOLEDB.1; _
Netwprk Library=DBMMSOCN; _
Data Source=xxx.xxx.xxx.xxx,1433; _
Password=myPassword; _
User ID=myUsername; _
Initial Catalog=myDatabaseName;
㈡ vb怎么连接sql
在窗体上添加adodc控件
鼠标右键-adodc属性-在通用选项卡里,点生成,选for
SQL
Server驱动程序-下一步-连接选项卡里
1.输入服务器名称,2.使用Windows
NT
集成安全设置。3.选择一个数据库
点测试连接,看看是否成功。按确定
点记录源选项卡,命令类型选8,命令文本(SQL)写:select
*
from
table1
确定,就连接到SQL数据库的表table1了。
Private
Sub
Command1_Click()
If
Not
Adodc1.Recordset.EOF
Then
Text1.Text
=
Adodc1.Recordset.Fields("line1")
End
If
End
Sub
㈢ VB和数据库的链接
ADO部分:
一.用Adodc控件连接数据库
例:
Adodc1.ConnectionString = "DBQ=E:\system.mdb;Driver={Microsoft Access Driver (*.mdb)};pwd=123;"
Adodc1.RecordSource = "select * from 专业 where 专业名称<>’123’"
Adodc1.Refresh
Set Text1.DataSource = Adodc1
Text1.DataField = "专业名称"
二.不使用Adodc控件,连接数据库
Adodc控件虽然简单易用,但功能上受很多限制,速度也慢,能不用就不用。使用ADO,可以在代码中动态改变绑定控件的DataSouce属性,所以控件可以绑定到RecordSet对象上,并非一定要绑定到Adodc控件,这一点比DAO方便多了。偶觉得这也进一步削弱了使用Adodc控件的必要性(实际上偶从来没正经用过Adodc控件)。
首先,添加对ADO的引用,菜单“工程”->“引用”->Microsoft ActiveX Data Objects 2.5 Library(未必是2.5,2.1亦可)。也可以通过在窗体上放置一个Adodc控件让VB自动添加这个引用。
例1:本例没有使用带DSN的连接字符串, 作为替换方法,指定了ODBC 的驱动程序。指定DSN,需要通过“Windows 控制面板”对ODBC数据源进行定义,有点麻烦,而且将来打包安装都是个问题。
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
cn.Open "DBQ=E:\system.mdb;Driver={Microsoft Access Driver (*.mdb)};pwd=123;"
rs.Open "专业", cn, adOpenDynamic, adLockReadOnly, adCmdTable
Set Text1.DataSource = rs
Text1.DataField = "专业名称"
例2:使用OLE DB接口是首选,比ODBC要快很多。正如MSDN所言,“对于 ADO 或 RDS 的程序员来说,理想的环境是每个数据源都具有一个 OLE DB 接口,以便 ADO 可以直接调用该数据源”。Access当然提供了OLE DB 接口,所以嘛,让ODBC走远点吧:)
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
cn.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=e:\system.mdb;Jet OLEDB:Database Password=123;"
rs.Open " select * from 专业 where 专业名称<>’123’", cn, adOpenKeyset, adLockReadOnly, adCmdText
Do While Not rs.EOF
Debug.Print rs.Fields("专业名称")
rs.MoveNext
Loop
三.得到数据库中所有表的名字
用ADO得到所有表名,不像DAO那样直接,所以很多人不知道怎么做。偶也是有一天闲着无聊,乱七八糟做了半天试验,偶然发现的这个东东。
首先,添加两个引用:Microsoft ActiveX Data Objects 2.5 Library和Microsoft ADO Ext. 2.5 for DDL and Security
例:
Dim cn As New ADODB.Connection
Dim x As New ADOX.Catalog
cn.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=e:\system.mdb;Jet OLEDB:Database Password=123;"
x.ActiveConnection = cn
Dim i As Long
For i = 0 To x.Tables.Count - 1
Debug.Print x.Tables(i).Name, x.Tables(i).Type
Next
四.压缩数据库
刚开始用ADO编程的时候,不知道怎么实现数据库的压缩。后来偶然在一本书上看到了一个示例,赶紧记了下来。奇怪的是,从那以后,好像到处都可以见到用ADO压缩数据库的示例:)
首先,添加引用Microsoft Jet and Replication Objects 2.1 Library和Microsoft ActiveX Data Objects 2.1 Library
例:
Dim jj As New JRO.JetEngine
jj.CompactDatabase "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=e:\system.mdb;Jet OLEDB:Database Password=123;", "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=e:\system1.mdb;Jet OLEDB:Database Password=123;"
Kill "e:\system.mdb"
Name "e:\system1.mdb" As "e:\system.mdb"
注:这个方法同时实现对数据库的修复,也可以实现对密码的修改。ADO中专门用于修改密码的方法偶还没找到。
五.在数据库中存放图片
在ADO中,想在数据库中存放图片比DAO麻烦不少,它不能把绑定的图片框中的图像自动存入数据库。2.1版以前,ADO程序员一般通过AppendChunk这个方法实现此目的,那可不是一般的麻烦,MSDN给出的示例有50多行。所以很多人干脆在数据库中存放图片的路径,显示时再LoadPicture。
到了2.5版,ADO提供了Stream来解决这个问题,方便极了。
偶是在一本书中看到的这种方法,书上说,虽然Value是Field的缺省属性,在这里却不可以省略。偶试验了一下,即使不写.Value,使用缺省属性,也可以正常工作。不过在本例中偶还是显式指明了Value属性。
首先,添加引用Microsoft ActiveX Data Objects 2.5 Library
例1:把图片文件存入数据库
Dim cn As New ADODB.Connection
cn.Open "DBQ=E:\db.mdb;Driver={Microsoft Access Driver (*.mdb)};"
Dim s As New ADODB.Stream
Dim rs As New ADODB.Recordset
rs.Open "图片表", cn, adOpenDynamic, adLockOptimistic, adCmdTable
s.Type = adTypeBinary
s.Open
s.LoadFromFile "e:\Camcord.bmp"
rs.AddNew
rs.Fields("image").Value = s.Read()
rs.Update
例2:把数据库中的图像数据导出为文件
Dim cn As New ADODB.Connection
cn.Open "DBQ=E:\db.mdb;Driver={Microsoft Access Driver (*.mdb)};"
Dim s As New ADODB.Stream
Dim rs As New ADODB.Recordset
rs.Open "图片表", cn, adOpenDynamic, adLockOptimistic, adCmdTable
s.Type = adTypeBinary
s.Open
s.Write rs.Fields("image").Value
s.SaveToFile "e:\xxx.bmp"
注:1.图片表的image字段类型为OLE 对象。
2.可以看出,这种方法并非只能用来存放图片文件,实际上任何文件都可以通过这种方法存入数据库,只不过好像没什么必要这么做。实际上,如果图片很大数量又多,存入数据后,浏览速度会变得很慢,不如改为存放文件路径。
㈣ VB怎么连接 SQL 数据库
一个简单的方法:
首先,建立程序公共模块输入以下代码:
Public conn As New ADODB.Connection
'全局变量 rst 指针
Public rst As New ADODB.Recordset
'全局调用函数 打开数据库
Public Function openconn()
conn.ConnectionString = "连接信息"
'此连接信息最简单的生成办法:
'在任意窗口下建立一新ADODC控件
'选择控件属性,通用页,使用连接字符串,生成(U)
'利用该向导生成出字符串,然后将该字符串复制到"连接信息"中即可
conn.Open
End Function
'全局调用函数 关闭数据库
Public Function closeconn()
If conn.State = 1 Then
conn.Close
Set conn = Nothing
End If
End Function
然后在窗体文件中可以使用的函数:
打开数据库:openconn
注意:此函数为自定义函数,无参数,定义在公共模块中!
建立数据表连接:Set rst = conn.Execute("select * from 数据表名")
如做登陆页可以这样判断用户名密码:
Text1.Text = RTrim(rst.Fields("id")) And Text2.Text = RTrim(rst.Fields("password"))
注:其中Text1.Text为输入用户名TextBOX Text2.Text为输入密码TextBOX
数据表中 id 为保存用户名 password 为保存密码!此方法为非加密方法!
关闭数据库函数:
closeconn
Set rst = Nothing
注:此两行,必须在打开数据库的情况下使用!并且每打开一次数据库后必须先使用此两句将数据库关闭后才可打开另一数据库表文件!!!!!否则程序报错终止!
添加新数据函数
rst.AddNew
rst("字段名1") = Text1.Text
rst("字段名2") = Text2.Text
rst.Update
删除数据函数
rst.Delete
注:使用此函数前,必须保证数据库指针函数rst指向需删除数据,移动rst指针可以使用函数:rst.MoveNext或rst.MoveLast
更新数据函数
rst.Open "update 数据表名 set 字段1='" + Text1.Text + "',字段2='" + Text2.Text + "' where id='" + Text3.Text + "'", conn, 1, 3
注,其中 where id = 为更新特定数据表的查找!
如果熟悉SQL语句,还可编写出其他方式的查找,这里就不多做介绍了!