vb连接sql数据库实例?sql数据库下载及安装
大家好,关于vb连接sql数据库实例很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于sql数据库下载及安装的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!
求一个 VB 连接SQL SERVER数据库里表的 实例!谢谢
Private Sub Command1_Click()
' Dim excel_app As excel.Application
' Dim excel_sheet As excel.Sheets
Dim excel_app As Object
Dim excel_sheet As Object
Dim rs As ADODB.Recordset
Dim strsql As String
Dim pubconn As ADODB.Connection
Dim exfieldA As String
Dim exfieldB As String
Dim exfieldC As String
Dim exfieldD As String
'打开数据库
Set rs= New ADODB.Recordset
Set pubconn= New ADODB.Connection
pubconn="Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=aaa;Data Source=(local)"
pubconn.Open
Set excel_app= CreateObject("excel.application")'excel对象
Set excel_app= New Excel.Application
' excel_app.Visible= True
excel_app.Workbooks.Open FileName:="D:\astroboy\河南生税务支持系统\实现\字典\111.xls"
' excel_app.Worksheets(Combo1.ListIndex+ 1).Activate
If Val(excel_app.Application.Version)>= 8 Then'检查excel文件的版本
Set excel_sheet= excel_app.ActiveSheet
Else
Set excel_sheet= excel_app
End If
'''创建sql表格
Dim crtstrsql As String
Dim exceltst As String
exceltst= Text1.Text
exfieldA= Trim$(excel_sheet.Cells(1, 1))
exfieldB= Trim$(excel_sheet.Cells(1, 2))
exfieldC= Trim$(excel_sheet.Cells(1, 3))
exfieldD= Trim$(excel_sheet.Cells(1, 4))
crtstrsql=""
crtstrsql= crtstrsql&"create table"& exceltst&"("& vbCrLf
crtstrsql= crtstrsql& exfieldA&" char(50) null,"& vbCrLf
crtstrsql= crtstrsql& exfieldB&" char(6) null,"& vbCrLf
crtstrsql= crtstrsql& exfieldC&" datetime null,"& vbCrLf
crtstrsql= crtstrsql& exfieldD&" datetime null)"
pubconn.Execute crtstrsql
Dim new_value1 As String
Dim new_value2 As String
Dim new_value3 As String
Row= 2
Do
new_value= Trim$(excel_sheet.Cells(Row, 1))'读取excel工作者第一列数据
new_value1= Trim$(excel_sheet.Cells(Row, 2))
If excel_sheet.Cells(Row, 3)="" Then
new_value2=""
Else
new_value2= CDate(excel_sheet.Cells(Row, 3)&"1月")
End If
If excel_sheet.Cells(Row, 4)="" Then
new_value3=""
Else
new_value3= CDate(excel_sheet.Cells(Row, 4)&"1月")
End If
If Len(new_value)= 0 And Len(new_value1)= 0 Then Exit Do
'将这一值插入SQL数据库
strsql="insert into"& exceltst&"("& exfieldA&","& exfieldB&","& exfieldC&","& exfieldD&") values('"& new_value&"','"& new_value1&"','"& new_value2&"','"& new_value3&"')"
pubconn.Execute strsql
Row= Row+ 1'读取下一行数据
Loop
MsgBox"传输数据完成!", vbOKOnly,"完成!"
pubconn.Close
excel_app.Quit
Set rs= Nothing
Set pubconn= Nothing
Set excel_app= Nothing
Set excel_sheet= Nothing
End Sub
或参考以下
EXCEL文件要设置固定格式,还要设置命名范围,然后才可以导入
大致思路如下:
'//设置打开 EXCEL文件的连接字符串
strConn="Provider=Microsoft.Jet.OLEDB.4.0;"& _
"Data Source=excel文件名;Extended Properties=Excel 8.0"
'//以记录集的形式打开 Excel文件,adoConn为 ADODB.Connection对象
adoConn.Open strConn
'//将数据插入到指定的表中(以ODBC的方式打开SQL数据库)
strSQL="INSERT INTO [odbc;Driver={SQL Server};Server=服务器IP;Database=数据库;UID=用户名;PWD=密码].SQL中的表名 SELECT EXCEL中的字段 FROM EXCEL工作表名"
'//执行导入语句
adoConn.Execute strSQL,, adExecuteNoRecords
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数据库做登录
VB连接SQL数据库,可通过ADO数据对象和SQL结构化查询语言实现。
ADO(ActiveX数据对象),这项新的数据访问技术的特性包括:更简单的对象模型;与其它 Microsoft和非 Microsoft
的技术更好的集成;为本地和远程数据数据提供的通用接口;可远程访问的和断开的记录集;用户可访问的数据绑定接口;以及层次结构的记录集。
结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
代码示例:
Private Sub XPButton1_Click()
On Error GoTo finish'防错代码,防止意外而导致的退出
sql="select* from用户管理 where用户名='"& Text1.Text&"' and密码='"& Text2.Text&"'"
cn.ConnectionString="Provider=SQLOLEDB.1;Persist Security Info=True;User ID=登录数据库用户名(默认为sa);Password=登录数据库密码;Initial Catalog=数据库名;Data Source=服务器名(默认为:MERRYCHINA)"'这是连接SQL数据库的语句
cn.Open
rs.CursorLocation= adUseClient
rs.Open sql, cn, adOpenDynamic, adLockOptimistic
'以上使用最通用的方法来查询数据库中是否有匹配的记录
If rs.EOF= True Then'如果没有记录则说明用户或密码为错误的
If pnum< 2 Then'pnum就是密码验证次数,当次数超过3次,系统会自动保护退出
pnum= pnum+ 1
MsgBox"用户名或密码错误!", vbInformation,"错误次数:"& pnum
rs.Close
cn.Close
Text1.Text=""
Text2.Text=""
Text1.SetFocus
Exit Sub
Else
MsgBox"用户名或密码错误超过三次,系统会自动退出", vbInformation,"提示"
End
End If
Else
loginname= rs.Fields(0)
Form1.Show
rs.Close
cn.Close
End If
Exit Sub
finish:
MsgBox Err.Description
rs.Close
cn.Close
End Sub
注意cn.ConnectionString此句需依据实际的SQL数据库建立连接获得的字符串。
如果你还想了解更多这方面的信息,记得收藏关注本站。