建立数据库并在VB中读取数据

合集下载

如何在VB中连接数据库

如何在VB中连接数据库

如何在VB中连接数据库我们对数据库进行操作时,一方面要使用户可以在程序界面上对需要的数据进行访问;另一方面可以对数据库中的数据进行各种操作,最终的操作结果还要反馈给用户。

用户在对数据进行访问时,需要应用程序对数据库做许多底层的操作,如果要开发人员编写代码的话,需要花费大量的精力。

为了简化开发过程,一些开发工具使用控件对数据库进行操作。

在VB中就有几个这样的控件,如Data控件、ADO控件。

下面就介绍一下Data控件和ADO控件以及ADO对象的使用。

一、Data控件通过设置数据控件的属性,我们可以将Data控件连到一个特定的数据库和其中的一个表上。

但是,Data控件本身是不能显示数据的,它只能处理信息流在应用程序和数据库间的转换。

为了能在界面中显示数据,我们使用VB中的普通控件在窗体上显示数据。

首先,在VB中建立一个标准的工程。

在窗体中添加控件其中,Data1就是一个Data控件。

然后改变控件的一些属性,属性修改后如接下来我们要对Data控件进行设置。

要对特定的数据库进行操作,就要连接到这个特定的数据库中。

在Data控件中要对Databasename属性进行设置,在对此属性进行设置时会弹出一个对话框,可以选择数据库的路径。

一个数据库中可能会有许多张表,我们还要指定一张表。

这个可以通过Data控件的Recordsource属性来设置。

如果设置好了Databasename 属性,在你设置Recordsource属性时就会出现一个列表,列出所连接数据库中所有的表,在其中就可以选择某个要使用的表。

这样就可以了吗?用户在界面上是看不到任何数据的。

为了能够让用户对数据进行操作,还有设置相关控件的属性。

在窗体上有三个文本框控件,分别是用来显示表中的对应字段的。

要使文本框对应显示表中的字段,要对文本框的Datasource和Datafield属性进行设置。

在Datasource中要选择对应的数据控件,在这个工程中只有Data控件,所以只能选择此控件,其名字为data1。

VB中对数据库的操作

VB中对数据库的操作

VB中对数据库的操作''数据库操作(SmDbCtrl)'Option ExplicitPublic DbStyle As StringDim CT As SmDataDiap''====================================== ================================== '创建一个SQLSERVER定形连接(连接到SQL)'函数名:CreateShape'参数: P_Cnn ADODB连接,ServerName 服务器名,DBname 数据库名,UserID 登录用户名,UPw 登录密码,Timerout 连接超时'返回值:TRUE 连接成功.FALSE 连接失败.'例: CreateShape P_Cnn,"CJH","cjherp001","sa","123",15'====================================== ==================================Public Function CreateShape(ByRef P_Cnn As ADODB.Connection, _ServerName As String, _DbName As String, _UserID As String, _UPw As String, _Optional Timerout As Long = 15) As BooleanDim ReturnVal As BooleanDim ConnStr As StringErr.ClearOn Error Resume NextConnStr = "Provider=MSDataShape;Data Provider=SQLOLEDB.1;Password=" & UPw & ";Persist Security Info=True;User ID=" & UserID & _";Initial Catalog=" & DbName & ";Data Source=" & ServerNameP_Cnn.ConnectionString = ConnStrP_Cnn.ConnectionTimeout = TimeroutP_/doc/9c5451052.html,mandTimeou t = TimeroutP_Cnn.OpenDoEventsIf Err.Number = 0 ThenDbStyle = "SQL"ReturnVal = TrueElseErr.ClearDbStyle = ""ReturnVal = FalseEnd IfCreateShape = ReturnValErr.ClearEnd Function'====================================== ================================== '创建一个连接(连接到SQL)'函数名:CreateSqlConn'参数: P_Cnn ADODB连接,ServerName 服务器名,DBname 数据库名,UserID 登录用户名,UPw 登录密码,Timerout 连接超时'返回值:TRUE 连接成功.FALSE 连接失败.'例: CreateSqlConn p_cnn,"CJH","cjherp001","sa","123",15'====================================== ================================== Public Function CreateSqlConn(ByRef P_Cnn As ADODB.Connection, _ServerName As String, _DbName As String, _UserID As String, _UPw As String, _Optional Timerout As Long = 15) As BooleanDim ReturnVal As BooleanErr.ClearOn Error Resume NextIf P_Cnn.State = adStateOpen And Not IsEmpty(adStateOpen) ThenP_Cnn.CloseEnd IfP_Cnn.Provider = "MSDASQL.1"P_Cnn.ConnectionString = "Driver={SQL Server};Server=" & ServerName & ";DataBase=" & DbName & ";Uid=" & UserID &";Pwd=" & UPw & ";APP=" & App.Path & ";WSID=" & UserID & ";Connect Timeout=" & Timerout & ";"P_Cnn.ConnectionTimeout = TimeroutP_/doc/9c5451052.html,mandTimeou t = TimeroutP_Cnn.OpenDoEventsIf Err.Number = 0 ThenDbStyle = "SQL"ReturnVal = TrueElseErr.ClearDbStyle = ""ReturnVal = FalseEnd IfCreateSqlConn = ReturnValErr.ClearEnd Function''====================================== ================================== '创建一个连接(连接到ACCESS)'函数名:CreateMdbConn'参数: MdbCnn ADODB连接,MdbPath ACCESS数据库路径,Provider JET引擎版本,UserID 登录用户名,UserWord 登录密码'返回值:TRUE 连接成功.FALSE 连接失败.'例: CreateMdbConn p_cnn,"C:\DEMO.MDB","sa","123"'====================================== ==================================Public Function CreateMdbConn(ByRef MdbCnn As ADODB.Connection, _MdbPath As String, _Optional Provider = "Microsoft.Jet.OLEDB.4.0;", _Optional UserID As String = "admin", _Optional UserWord As String = "") As BooleanDim ConStr As StringErr.ClearOn Error Resume NextIf MdbCnn.State = adStateOpen And Not IsEmpty(adStateOpen) ThenMdbCnn.CloseEnd If'/------------------------------------------------------------------ConStr = "Provider=" & Provider & _"Data Source=" & MdbPath & ";" & _"Jet OLEDB:Database Password=" & UserWord & ";" & _"User ID=" & UserID & ";"MdbCnn.ConnectionString = ConStrMdbCnn.OpenDoEventsIf Err.Number = 0 ThenDbStyle = "MDB"CreateMdbConn = TrueElseErr.ClearDbStyle = ""CreateMdbConn = FalseEnd IfErr.ClearEnd Function'====================================== ==============================='创建一个连接(连接到其它数据库类型)'函数名:CreateOtherConn'参数: OtherCnn ADODB连接,FilePath 数据库路径,UserName 登录用户名,PassWord 登录密码,DbType SmDbType枚举数据库类型'返回值:TRUE 连接成功.FALSE 连接失败.'例:'CreateOtherConn Cnn, "E:\CjhLx\dbf", , , FoxPro'StrSql = "select * from [employee.dbf]"'Set Rs = RsOpen(Cnn, StrSql)'Set DataGrid1.DataSource = Rs'====================================== ===============================Public Function CreateOtherConn(ByRef OtherCnn As ADODB.Connection, _FilePath As String, _Optional UserName As String = "admin", _Optional PassWord As String = "", _Optional DbType As SmDbType = Access) As BooleanDim ConnStr As StringDim DriveName(5) As StringDim tDbType(5) As StringDim UserPwd(5) As StringErr.Clear'/驱动程序DriveName(1) = "{Microsoft Access Driver (*.mdb)}"DriveName(2) = "{Microsoft Excel Driver (*.xls)}"DriveName(3) = "{Microsoft Text Driver (*.txt; *.csv)}"DriveName(4) = "{Microsoft Visual FoxPro Driver};SourceType=DBF"DriveName(5) = "{Microsoft dBase Driver (*.dbf)}"'/类型tDbType(1) = "MDB"tDbType(2) = "XLS"tDbType(3) = "TXT"tDbType(4) = "FDB"tDbType(5) = "DDB"'/用户名和密码.UserPwd(1) = "Uid=" & UserName & ";Pwd=" & PassWord & ";"UserPwd(2) = "Uid=" & UserName & ";Pwd=" & PassWord & ";"UserPwd(3) = ""UserPwd(4) = "Uid=" & UserName & ";Pwd=" & PassWord & ";"UserPwd(5) = "Uid=" & UserName & ";Pwd=" & PassWord & ";"On Error Resume NextIf OtherCnn.State = adStateOpen And Not IsEmpty(adStateOpen) ThenOtherCnn.CloseEnd IfConnStr = "Provider=MSDASQL.1;Persist Security Info=False;DRIVER=" & DriveName(DbType) & ";" & UserPwd(DbType) & "DBQ=" & FilePathOtherCnn.ConnectionString = ConnStrOtherCnn.OpenDoEventsIf Err.Number = 0 ThenDbStyle = tDbType(DbType)CreateOtherConn = TrueElseErr.ClearDbStyle = ""CreateOtherConn = FalseEnd IfErr.ClearEnd Function'====================================== =================================== '打开一个记录集'函数名:RsOpen'参数: P_Cnn ADODB连接,StrSql SQL查询语句,SetNothing 非连接方式(TRUE默认).连接方式(FALSE)'返回值:记录集'例: RsOpen P_CNN,"SELECT ACHGOODS.* FROM ACHGOODS WHERE GDSID='001''====================================== =================================== Public Function RsOpen(ByRef P_Cnn As ADODB.Connection, _StrSql As String, _Optional SetConnect As Boolean = True) As ADODB.RecordsetDim Rs As New ADODB.RecordsetErr.ClearOn Error Resume NextIf P_Cnn.State <> 1 Then P_Cnn.OpenIf SetConnect Then '使用非连接Rs.CursorLocation = adUseClient '使用客户端游标Rs.LockType = adLockBatchOptimistic '开放式批更新Rs.CursorType = adOpenKeyset '键集游标Else '使用连接(主要用于更新二进制字段)Rs.CursorLocation = adUseClientRs.CursorType = adOpenKeysetRs.LockType = adLockOptimistic '记录锁定End IfRs.Open StrSql, P_Cnn '执行SQLIf SetConnect Then Set Rs.ActiveConnection = Nothing '设置非连接If Err.Number = 0 ThenSet RsOpen = Rs.CloneElseSet RsOpen = NothingEnd IfRs.CloseSet Rs = NothingErr.ClearEnd Function'//执行一条SQL语句Public Function ExecSql(ByRef P_Cnn As ADODB.Connection, _StrSql As String) As BooleanErr.ClearIf P_Cnn.State <> 1 Then P_Cnn.OpenP_Cnn.Execute StrSqlExecSql = (Err.Number = 0)Err.ClearEnd Function''======================================================================== '建立数据库'函数名:CreateDataBase'参数: ServerName 服务器名,UserID 用户名(SA),Pwd 登录密码,DataBasName 建立的数据库名,DataBasPath 库文件目录的绝对路径'返回值:无'例: CreateDataBase "CJH","SA","123","CJHERP001","C:\DB"'====================================== ================================== Public Function CreateDataBase(ServerName As String, _UserID As String, _Pwd As String, _DataBasName As String, _DataBasPath As String) As BooleanDim A As Long, LeftName As StringDim DbC As New ADODB.ConnectionDim CreateBasSql As StringDim BagTrFlag As BooleanErr.ClearIf CreateSqlConn(DbC, ServerName, "Master", UserID, Pwd) ThenIf Right$(DataBasPath, 1) <> "\" Then DataBasPath = DataBasPath & "\"On Error GoTo Errhan:DataBasPath = Trim$(DataBasPath)If Len(DataBasPath) < 2 Then Exit FunctionIf Dir$(Left$(DataBasPath, 2), vbDirectory) = "" Then Beep: Exit Function '根目录是否存在'/---------------------------------------------------------If Right$(DataBasPath, 1) <> "\" Then DataBasPath = DataBasPath & "\"For A = 1 To Len(DataBasPath)If Mid$(DataBasPath, A, 1) = "\" ThenLeftName = Left$(DataBasPath, A)'/如果目录不存在,则先建立If Dir$(LeftName, vbDirectory) = "" Then MkDir LeftName: DoEventsEnd IfNextErr.ClearDbC.BeginTrans'/---------------------------------------------------------CreateBasSql = " CREATE DATABASE " & DataBasName & " ON (NAME=" & DataBasName & ",FILENAME='" & DataBasPath & DataBasName & ".mdf', SIZE=20,FILEGROWTH=4) " & _ " LOG ON (NAME=" & DataBasName & "Log" & ",FILENAME='" & DataBasPath & DataBasName & "Log.ldf',SIZE=20,FILEGROWTH=0)"DbC.Execute CreateBasSql/doc/9c5451052.html,mitTransEnd IfErrhan:If Err.Number <> 0 Then DbC.RollbackTransCreateDataBase = (Err.Number = 0)DbC.CloseSet DbC = NothingErr.ClearEnd Function''建立数据表'函数名:CreageDbT ab'参数: P_Cnn ADO连接,CreateTableSql 建表字符串'返回值:无'例:CreateDbTab P_CNN,CreateTabStrPublic Function CreateDbTab(ByRef P_Cnn As ADODB.Connection, _CreateTableSql As String) As BooleanErr.ClearOn Error Resume NextIf P_Cnn.State <> 1 Then P_Cnn.OpenP_Cnn.BeginTransP_Cnn.Execute CreateTableSqlP_/doc/9c5451052.html,mitTransCreateDbTab = (Err.Number = 0)Err.ClearEnd Function''得到服务器上所有的数据库名'函数名:GetAllDatabases'参数: ServerName 服务器名,UserID 登录用户名(SA),Pwd 登录密码'返回值:数据库名的字符串数组'例: GetAllDatabases "CJH","SA","123"Public Function GetAllDatabases(ServerName As String, _UserID As String, _Pwd As String, _Optional strDriver As String = "SQL Server") As String()Dim PCnn As New ADODB.ConnectionDim RsSchema As New ADODB.RecordsetDim ConnStr As StringDim ReturnVal() As StringDim ReID As LongErr.ClearOn Error Resume NextConnStr = "Driver={" & strDriver & "};"ConnStr = ConnStr & "Server=" & ServerName & ";"ConnStr = ConnStr & "uid=" & UserID & ";pwd=" & Pwd & ";"PCnn.ConnectionString = ConnStrPCnn.Open: ReID = 0Set RsSchema = PCnn.OpenSchema(adSchemaCatalogs)Do Until RsSchema.EOFReID = ReID + 1ReDim Preserve ReturnVal(ReID - 1)ReturnVal(ReID - 1) = RsSchema!Catalog_NameRsSchema.MoveNextLoopIf PCnn.State = adStateOpen And Not IsEmpty(adStateOpen) ThenPCnn.CloseEnd IfGetAllDatabases = ReturnValErr.ClearEnd Function''取某数据库下的数据表'函数名:GetDbTabS'参数: P_Cnn ADO连接'返回值:包含数据表的字符串数组'例: TabArr=GetDbTabS(P_CNN)Public Function GetDbTabs(ByRef P_Cnn As ADODB.Connection) As String()Dim RstSchema As ADODB.RecordsetDim strCnn As StringDim ReturnVal() As StringDim ReID As LongErr.ClearOn Error Resume NextIf P_Cnn.State <> 1 Then P_Cnn.OpenSet RstSchema = P_Cnn.OpenSchema(adSchemaTables)ReID = 0Do Until RstSchema.EOFIf UCase$(Left$(RstSchema.Fields("TABLE_TYPE"), 3)) <> "SYS" ThenReID = ReID + 1ReDim Preserve ReturnVal(ReID - 1)ReturnVal(ReID - 1) = RstSchema.Fields("TABLE_NAME") ' & ":" & RstSchema!TABLE_TYPEEnd IfRstSchema.MoveNextLoopRstSchema.CloseSet RstSchema = NothingGetDbTabs = ReturnValErr.ClearEnd Function'====================================== ====================================== '取临时表名'函数名:GetTmpName'参数:'返回值:一个唯一的临时表名'例: TmpName=GetTmpName()'(注:临时表名="#TmpTal" & 累加数 & 毫秒数)'====================================== ====================================== Public Function GetTmpName(Optional UserName As String= "") As StringDim ReturnVal As StringDim TimVal As StringStatic K As LongErr.ClearOn Error Resume NextK = K + 1If K >= 2147483645# Then K = 0 '累加数TimVal = timeGetTime() '毫秒数ReturnVal = "#" & "TmpTal" & UserName & TimVal & CT.ToStr(K)GetTmpName = IIf(Err.Number = 0, ReturnVal, "")Err.ClearEnd Function''====================================== ================================='对表格或记录集以 INSERT INTO 保存.'函数名:GetInsertIntoSql'参数: P_Cnn ADO连接,mRs 记录集,DateTabName 目标数据表名'返回值:SQL语句'例: InsertIntoDB P_CNN,RS,"ACHGOODS"'====================================== =================================Public Function InsertIntoDB(ByRef P_Cnn As ADODB.Connection, _DateTabName As String, _ByRef MRs As ADODB.Recordset) As BooleanDim StrSql As StringDim TabFied() As SmFiedArrtr '数据库字段Dim SaveFied() As SmFiedArrtr '表格与数据库同时存在的字段Dim SaveID As LongDim AddSave As BooleanDim AddFile As SmFiedArrtrDim FileCon As StringDim FldVal As StringDim TmpVal As VariantDim FldType As LongDim A As Long, B As Long, I As LongDim FldValColl As New Collection'/--------------------------------------------------------------------------------------Err.ClearOn Error Resume NextIf (MRs.EOF And MRs.BOF) Then Exit FunctionErase TabFiedIf P_Cnn.State <> 1 Then P_Cnn.OpenTabFied = GetTabFldAttrib(P_Cnn, DateTabName) '取数据库字段If UBound(TabFied, 1) > 0 ThenSaveID = 0: AddSave = FalseFor A = 0 To MRs.Fields.Count - 1For B = 0 To UBound(TabFied, 1)If UCase$(TabFied(B).FieldName) =UCase$(MRs.Fields(A).Name) Then'处理重复的字段名.Err.ClearFldValColl.Add TabFied(B), "_" & UCase$(TabFied(B).FieldName)If Err.Number <> 457 ThenSaveID = SaveID + 1ReDim Preserve SaveFied(SaveID - 1)SaveFied(SaveID - 1) = TabFied(B)End IfExit ForEnd IfNextNext'/---------------------------------------------------------------------------------------'/保存字段列表For A = 0 To UBound(SaveFied, 1) '字段列表If SaveFied(A).FieldType <> 205 ThenFileCon = FileCon & "[" & SaveFied(A).FieldName & "],"End IfNext AFileCon = Left$(FileCon, Len(FileCon) - 1)MRs.MoveFirstWhile Not MRs.EOFFldVal = ""For I = 0 To UBound(SaveFied, 1)FldType = SaveFied(I).FieldType '字段类型If FldType <> 205 Then '将IMAGE字段排除TmpVal = CT.ToStr(MRs.Fields(SaveFied(I).FieldName)) '字段值If Len(TmpVal) = 0 Then '对空或NULL的处理Select Case FldTypeCase 2, 3, 4, 5, 6, 17, 131 '数值类型If SaveFied(I).FieldIsNull <> 0 Then '可接受NULLFldVal = FldVal & "NULL,"ElseFldVal = FldVal & "0,"End IfCase 135 '日期If SaveFied(I).FieldIsNull <> 0 Then '可接受NULLFldVal = FldVal & "NULL,"ElseIf DbStyle = "MDB" ThenFldVal = FldVal & "#" & Now() & "#,"ElseFldVal = FldVal & "'" & Now() & "',"End IfEnd IfCase Else '其它类型If SaveFied(I).FieldIsNull <> 0 ThenFldVal = FldVal & "NULL,"ElseFldVal = FldVal & "'',"End IfEnd SelectElseSelect Case FldTypeCase 2, 3, 4, 5, 6, 17, 131 '数值类型FldVal = FldVal & "" & TmpVal & ","Case 135If DbStyle = "MDB" ThenFldVal = FldVal & "#" & TmpVal & "#,"ElseFldVal = FldVal & "'" & TmpVal & "',"End IfCase Else '其它类型FldVal = FldVal & "'" & Replace(TmpVal, "'", "''") & "',"End SelectEnd IfEnd IfNextFldVal = Left$(FldVal, Len(FldVal) - 1)StrSql = "INSERT INTO [" & DateTabName & "] (" & FileCon & ") VALUES (" & FldVal & ")"P_Cnn.Execute StrSqlMRs.MoveNextWendEnd IfSet FldValColl = NothingInsertIntoDB = (Err.Number = 0)Err.ClearEnd Function''对表格或记录集以 UPDATE 保存.'函数名:GetUpdataSql'参数: P_Cnn ADO连接,mRs 记录集,DateTabName 目标数据表名,WhereStr 更新条件'返回值:SQL语句'例: UpdataDB P_CNN,RS,"ACHGOODS","WHERE GDSID='001'"Public Function UpdataDB(ByRef P_Cnn As ADODB.Connection, _DateTabName As String, _ByRef MRs As ADODB.Recordset, _WhereStr As String) As BooleanDim StrSql As StringDim TabFied() As SmFiedArrtr '数据库字段Dim SaveFied() As SmFiedArrtr '表格与数据库同时存在的字段Dim SaveID As LongDim AddSave As BooleanDim AddFile As SmFiedArrtrDim FileCon As StringDim FldVal As StringDim TmpVal As VariantDim FldType As LongDim A As Long, B As Long, I As Long'/----------------------------------------------------------------------------------------Err.ClearOn Error Resume Next'If MRs.EOF And MRs.BOF Then Exit FunctionErase TabFiedIf P_Cnn.State <> 1 Then P_Cnn.OpenTabFied = GetTabFldAttrib(P_Cnn, DateTabName) '取数据库字段If UBound(TabFied, 1) > 0 ThenSaveID = 0For A = 0 To MRs.Fields.Count - 1For B = 0 To UBound(TabFied, 1)If UCase$(TabFied(B).FieldName) = UCase$(MRs.Fields(A).Name) ThenSaveID = SaveID + 1ReDim Preserve SaveFied(SaveID - 1)SaveFied(SaveID - 1) = TabFied(B)Exit For '找到数据库与记录集中相同的值,跳出循环.End IfNextNext'/--------------------------------------------------------------------------------------MRs.MoveFirstWhile Not MRs.EOFFldVal = ""For I = 0 To UBound(SaveFied, 1)FldType = SaveFied(I).FieldType '字段类型If FldType <> 205 Then '将IMAGE字段排除TmpVal = CT.ToStr(MRs.Fields(SaveFied(I).FieldName)) '字段值If Len(TmpVal) = 0 Then '对空或NULL的处理Select Case FldTypeCase 2, 3, 4, 5, 6, 17, 131 '数值类型If SaveFied(I).FieldIsNull <> 0 Then '可按受NULLFldVal = FldVal & ",[" & SaveFied(I).FieldName & "]=NULL"ElseFldVal = FldVal & ",[" & SaveFied(I).FieldName & "]=0"End IfCase 135 '日期时间If SaveFied(I).FieldIsNull <> 0 Then '可接受NULLFldVal = FldVal & ",[" & SaveFied(I).FieldName & "]=NULL"ElseIf DbStyle = "MDB" ThenFldVal = FldVal & ",[" & SaveFied(I).FieldName & "]=#" & Now() & "#"ElseFldVal = FldVal & ",[" & SaveFied(I).FieldName & "]='" & Now() & "'"End IfEnd IfCase Else '其它类型If SaveFied(I).FieldIsNull <> 0 ThenFldVal = FldVal & ",[" & SaveFied(I).FieldName & "]=NULL"ElseFldVal = FldVal & ",[" & SaveFied(I).FieldName & "]=''"End IfEnd SelectElseSelect Case FldTypeCase 2, 3, 4, 5, 6, 17, 131 '数值类型FldVal = FldVal & ",[" & SaveFied(I).FieldName & "]=" & TmpValCase 135If DbStyle = "MDB" ThenFldVal = FldVal & ",[" & SaveFied(I).FieldName & "]=#" & TmpVal & "#"ElseFldVal = FldVal & ",[" & SaveFied(I).FieldName & "]='" & TmpVal & "'"End IfCase Else '其它类型FldVal = FldVal & ",[" & SaveFied(I).FieldName & "]='" & Replace(TmpVal, "'", "''") & "'"End SelectEnd IfEnd IfNextFldVal = " Set " & Right$(FldVal, Len(FldVal) - 1) & " " & WhereStrStrSql = "UpDate [" & DateTabName & "]" & FldValP_Cnn.Execute StrSqlMRs.MoveNextWendEnd IfUpdataDB = (Err.Number = 0)Err.ClearEnd Function''取某数据表下所有的字段及其属性'函数名:GetTabFldAttrib'参数: P_Cnn ADO连接,DateTabName 目标数据表名'返回值:SmFiedArrtr 类型数组'例: FiedAtrrib=GetTabFldAttrib(P_CNN,"ACHGOODS")Public Function GetTabFldAttrib(ByRef P_Cnn As ADODB.Connection, _DbTableName As String) As SmFiedArrtr()Dim A As LongDim StrSql As StringDim Rs As New ADODB.RecordsetDim ReturnVal() As SmFiedArrtrDim ReID As LongErr.ClearOn Error Resume NextIf P_Cnn.State <> 1 Then P_Cnn.OpenStrSql = "Select T op 1 * From [" & DbTableName & "]" '取字段名Set Rs = RsOpen(P_Cnn, StrSql)Set Rs.ActiveConnection = NothingErase ReturnVal: ReID = 0For A = 0 To Rs.Fields.Count - 1ReID = ReID + 1ReDim Preserve ReturnVal(ReID - 1)ReturnVal(ReID - 1).FieldType = Rs.Fields(A).Type '数据类型ReturnVal(ReID - 1).FieldName = Rs.Fields(A).Name '字段名ReturnVal(ReID - 1).FieldIsNull = Rs.Fields(A).Attributes And adFldIsNullable '是否可接受NULLReturnVal(ReID - 1).FieldDefSize = Rs.Fields(A).DefinedSize '定义的数据长度ReturnVal(ReID - 1).FieldActSize = 0 '实际数据长度(因只有字段名),故此值是0NextSet Rs = NothingGetTabFldAttrib = ReturnValErr.ClearEnd Function''取某数据表下除IMAGE字段名的所有字段名'函数名:GetTabFldName'参数: P_Cnn ADO连接,DateTabName 目标数据表名'返回值:String 类型数组'例: StrFld=GetTabFldName(P_CNN,"ACHGOODS")Public Function GetTabFldName(ByRef P_Cnn As ADODB.Connection, _DbTabname As String) As StringDim N As LongDim ReturnVal As StringDim FltArt() As SmFiedArrtrErr.ClearOn Error Resume NextIf P_Cnn.State <> 1 Then P_Cnn.OpenReturnVal = ""FltArt() = GetTabFldAttrib(P_Cnn, DbT abname)For N = 0 To UBound(FltArt)If FltArt(N).FieldType <> 205 ThenReturnVal = ReturnVal & DbTabname & "." & FltArt(N).FieldName & ","End IfNextReturnVal = Left$(ReturnVal, Len(ReturnVal) - 1)GetTabFldName = IIf(Err.Number = 0,ReturnVal, "")Err.ClearEnd Function''取记录集下所有的字段及其属性'函数名:GetRsAttrib'参数: mRs 记录集'返回值:FiedArrtr类型数组'例: RsAtrrib=GetRsAttrib(Rs)Public Function GetRsAttrib(ByRef MRs As ADODB.Recordset) As SmFiedArrtr()Dim A As LongDim ReturnVal() As SmFiedArrtrDim Rs As New ADODB.RecordsetDim ReID As LongErr.ClearSet Rs = MRs.CloneErase ReturnValFor A = 0 To Rs.Fields.Count - 1ReID = ReID + 1ReDim Preserve ReturnVal(ReID - 1)ReturnVal(ReID - 1).FieldType = Rs.Fields(A).Type '数据类型ReturnVal(ReID - 1).FieldName = Rs.Fields(A).Name '字段名ReturnVal(ReID - 1).FieldIsNull = Rs.Fields(A).Attributes And adFldIsNullable '是否可接受NULLReturnVal(ReID - 1).FieldDefSize = Rs.Fields(A).DefinedSize '定义的数据长度ReturnVal(ReID - 1).FieldActSize = Rs.Fields(A).ActualSize '数据的实际长度NextSet Rs = NothingGetRsAttrib = ReturnValErr.ClearEnd Function''取[窗体控件]与[字段]的对应关系'函数名:GetConT oFld'参数: P_Cnn ADODB.Connection,SelectStr SQL语句.'返回值:SmCtrlCorRs 类型数组'例: FrmAndFied=GetConT oFld(P_Cnn,Me)'*窗体控件命名规则:1-3 控件类型,4 W读写标志,R只读标志,其它,不作处理, 5 数据类型,6----最后.相对的字段名'*关于数据类型:C -字符 I 整数 F 浮点数 A 金额 U 单价 D 日期 T 时间Public Function GetConToFld(ByRef P_Cnn As ADODB.Connection, ByRef Frm As Object, SelectStr As String) As SmCtrlCorRs()Dim RevArr() As SmCtrlCorRsDim StrSql As StringDim Rs As New ADODB.RecordsetErr.ClearOn Error Resume Next' If (Frm Is Nothing) Or (P_Cnn Is Nothing) Then Exit Function ' If Len(Trim$(DbTabname)) = 0 Then DbTabname = /doc/9c5451052.html,'' StrSql = "SELECT TOP 1 * FROM [" & DbTabname & "]"StrSql = SelectStrIf P_Cnn.State <> 1 Then P_Cnn.OpenSet Rs = RsOpen(P_Cnn, StrSql)RevArr = GetConT oRs(Frm, Rs)GetConT oFld = RevArrSet Rs = NothingErase RevArrErr.ClearEnd Function''取[窗体控件]与[记录集]的对应关系'函数名:GetConT oRs'参数: Frm 源窗体名,mRs 源记录集'返回值:SmCtrlCorRs 类型数组'例: FrmAndFied=GetConT oRs(Me,Rs)'*窗体控件命名规则:1-3 控件类型,4 W读写标志,R只读标志,其它,不作处理, 5 数据类型,6----最后.相对的字段名'*关于数据类型:C -字符 I 整数 F 浮点数 A 金额 U 单价 D 日期 T 时间Public Function GetConToRs(ByRef m_Frm As Object, _ByRefMRs As ADODB.Recordset) As SmCtrlCorRs()Dim A As Long, B As LongDim SaveID As LongDim AddSave As BooleanDim ArrayCon() As Control '控件Dim TabFied() As SmFiedArrtr '数据库字段Dim SetFied() As String '同时存在的字段Dim ReturnVal() As SmCtrlCorRs '定义一个结构数组,用于返回Dim AddFile As SmCtrlCorRsDim Rs As New ADODB.RecordsetDim SId As LongDim FrmCon As ControlDim ConName As StringDim ConID As LongDim Frm As FormErr.ClearOn Error Resume NextErase ArrayCon: ConID = 0Set Frm = m_FrmFor Each FrmCon In Frm.Controls '取控件,放入一个数组中ConName = /doc/9c5451052.html,'/将图片框控件排除If UCase$(TypeName(FrmCon)) = UCase$("PictureBox") Or UCase$(TypeName(FrmCon)) = UCase$("Image") Or UCase$(TypeName(FrmCon)) = UCase$("SMPICBOX") ThenElseIf Len(ConName) > 5 ThenIf UCase$(Mid$(ConName, 4, 1)) = "W" Or UCase$(Mid$(ConName, 4, 1)) = "R" ThenConID = ConID + 1ReDim Preserve ArrayCon(ConID - 1)Set ArrayCon(ConID - 1) = FrmConEnd IfEnd IfEnd IfNext'/---------------------------------------------------------------------------------------------Erase TabFiedSet Rs = MRs.CloneIf Rs.EOF And Rs.BOF ThenRs.AddNewEnd IfTabFied = GetRsAttrib(MRs) '取字段属性If UBound(TabFied, 1) > 0 ThenSaveID = 0: AddSave = FalseFor A = 0 To UBound(TabFied, 1)For B = 0 To UBound(ArrayCon, 1)ConName = UCase$(Right$(ArrayCon(B).Name, Len(ArrayCon(B).Name) - 5))。

visual studio vb 数据库语句

visual studio vb 数据库语句

visual studio vb 数据库语句(原创版)目录1.Visual Studio VB 简介2.数据库语句的作用3.使用 Visual Studio VB 编写数据库语句的方法4.常见数据库语句示例5.总结正文【Visual Studio VB 简介】Visual Studio VB 是一款由微软公司开发的集成开发环境 (IDE),可用于开发基于 Visual Basic 的应用程序。

Visual Basic 是一种事件驱动编程语言,通常用于快速开发桌面应用程序、Web 应用程序和数据库应用程序。

【数据库语句的作用】数据库语句是用于与数据库进行交互的命令,可用于创建、查询、更新和删除数据库中的数据。

在开发数据库应用程序时,使用数据库语句可以有效地管理和操作数据。

【使用 Visual Studio VB 编写数据库语句的方法】使用 Visual Studio VB 编写数据库语句的方法如下:1.打开 Visual Studio VB,创建一个新的标准 EXE 项目。

2.在解决方案资源管理器中右键单击项目名称,选择“添加”>“模块”来添加一个新的模块。

3.在新模块中,使用“导入”语句导入所需的数据库连接库,例如:```Imports System.Data.SqlClient```4.使用“连接”语句创建一个数据库连接对象,例如:```Dim connectionString As String = "Data Source=.;Initial Catalog=myDatabase;Integrated Security=True"Dim connection As New SqlConnection(connectionString) ```5.使用“打开”语句打开数据库连接,例如:```connection.Open()```6.使用“命令”对象执行 SQL 语句,例如:```Dim command As New SqlCommand("SELECT * FROM myTable", connection)Dim reader As SqlDataReader = command.ExecuteReader() ```7.使用“读取”语句读取查询结果,例如:```While reader.Read()Console.WriteLine(reader("columnName"))End While```8.使用“关闭”语句关闭数据库连接,例如:```connection.Close()```【常见数据库语句示例】以下是一些常见的数据库语句示例:1.创建表:```CREATE TABLE myTable (columnName1 DataType,columnName2 DataType,...)```2.插入数据:```INSERT INTO myTable (columnName1, columnName2) VALUES (value1, value2)```3.查询数据:```SELECT columnName1, columnName2 FROM myTable WHERE condition```4.更新数据:```UPDATE myTable SET columnName1=value1, columnName2=value2 WHERE condition```5.删除数据:```DELETE FROM myTable WHERE condition```【总结】Visual Studio VB 是一款功能强大的集成开发环境,可用于编写各种类型的应用程序,包括数据库应用程序。

(完整版)vb连接access数据库及数据读写操作

(完整版)vb连接access数据库及数据读写操作

ACCESS数据库和VB的连接Edited by Ryan 20131、建立Access数据库2、启动VB,建立标准EXE图13、添加ActiveX控件鼠标指向任意VB控件,单击右键,选择“部件(O)”,出现图3所示界面图2图3选择部件“Microsoft ADO Data Control 6.0 (OLEDB)”,出现如图4所示控件图44、添加控件Adodc图54、在控件Adodc上添加数据源鼠标指向控件Adodc1,单击右键,选择“ADODC 属性”,弹出如图7所示界面图6图7单击“生成(U). . .”,弹出如图8所示界面图8选择“Microsoft Jet 4.0 OLE DB Provider”,单击“下一步(N) >>”,弹出如图9所示界面图9单击“. . .”,添加数据源(第一步所建Access 数据库),如图10所示图10单击“测试连接(T)”,出现提示框,如图11所示图11之后点击“确定”,退回到如图12所示界面图12单击“记录源”,弹出如图13所示界面图13在“命令类型”下,选择“1 - adCmdText”,在“命令文本(SQL)”下,输入“Select * from test1”,最后单击“应用”,“确定”即可之后,进入程序书写部分程序部分需要注意接头形式及简单例子如下:Private Sub Command1_Click() ‘VB按钮控件Dim mydb As New ADODB.Connection ‘定义新的数据库连接mydb.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\read database\test1\test1.mdb" ‘数据库绝对路径Dim rs As New ADODB.Recordset ‘定义数据库的一个对象mydb.Open ‘打开数据库rs.Open "select * from test1", mydb, 3, 3 ‘打开数据库中的表test1For i = 1 To 1 ! For循环控制选择哪一行rs.MoveNextNext iMe.Text1.Text = rs.Fields(1).Value ‘读取指定行中的哪个数据给文本框rs.Update ‘数据显示rs.Close ‘关闭表End Sub。

vb数据库操作实例

vb数据库操作实例

vb数据库操作实例在VB中,我们可以使用ADO(ActiveX Data Objects)来进行数据库操作。

ADO提供了一种统一的方法来访问各种类型的数据源,包括关系型数据库、文本文件、Excel文件等。

下面我们将分别以访问Access数据库和SQL Server数据库为例,介绍一些常见的数据库操作实例。

1. 访问Access数据库Access是一种常用的关系型数据库管理系统,我们可以使用VB来访问和操作Access数据库。

首先,我们需要添加对ADODB的引用,然后创建一个连接对象和一个命令对象。

```vbDim conn As New ADODB.ConnectionDim cmd As New mandconn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;DataSource=C:\path\to\database.accdb"conn.Opencmd.ActiveConnection = connmandType = adCmdTextmandText = "SELECT * FROM TableName"Dim rs As ADODB.RecordsetSet rs = cmd.ExecuteWhile Not rs.EOF'处理数据rs.MoveNextWendrs.Closeconn.Close```上述代码首先创建了一个连接对象`conn`,并设置了连接字符串,这里使用了Access数据库的OLEDB提供程序。

然后创建了一个命令对象`cmd`,并设置了命令的类型和文本。

接着执行了命令,并通过`Recordset`对象`rs`来获取查询结果。

最后使用`While`循环遍历结果集,并对数据进行处理。

2. 访问SQL Server数据库SQL Server是一种常用的关系型数据库管理系统,我们可以使用VB来访问和操作SQL Server数据库。

vbnet数据库编程例子

vbnet数据库编程例子

vbnet数据库编程例子是一种用于开发Windows应用程序的编程语言,它具有强大的数据库编程能力。

下面将列举10个数据库编程的例子,以帮助读者更好地理解和掌握数据库编程的技巧。

1. 连接数据库并查询数据提供了多种连接数据库的方式,可以使用来连接各种类型的数据库,如SQL Server、MySQL等。

通过使用连接字符串,可以轻松地连接到数据库,并执行SQL查询语句来检索数据。

2. 插入数据使用可以通过执行INSERT语句将数据插入数据库表中。

可以通过构建SQL INSERT语句,并使用的Command对象来执行该语句。

3. 更新数据通过执行UPDATE语句,可以使用更新数据库表中的数据。

可以根据需要构建SQL UPDATE语句,并使用Command对象执行该语句。

4. 删除数据使用可以执行DELETE语句来删除数据库表中的数据。

可以构建SQL DELETE语句,并使用Command对象执行该语句。

5. 使用事务使用可以创建事务来确保数据库操作的原子性。

可以使用Transaction对象来开始、提交或回滚事务。

6. 使用参数化查询为了提高数据库查询的安全性和性能,可以使用参数化查询。

提供了SqlParameter类来创建参数,并将其与SQL查询语句一起使用。

7. 使用存储过程存储过程是在数据库中预定义的一组SQL语句。

使用可以调用存储过程并传递参数,以执行一系列数据库操作。

8. 使用数据适配器填充数据集数据适配器是连接数据源和数据集的桥梁。

使用可以创建数据适配器,并使用Fill方法将数据库中的数据填充到数据集中。

9. 使用数据绑定显示数据数据绑定是将数据与用户界面进行关联的一种技术。

使用可以将数据集中的数据绑定到各种控件上,以显示数据库中的数据。

10. 处理数据库异常在数据库编程中,可能会出现各种异常情况,如连接失败、查询出错等。

使用可以通过使用Try-Catch块来捕获和处理这些异常,以保证程序的健壮性。

vb建立数据库的步骤

vb建立数据库的步骤

vb建立数据库的步骤以VB建立数据库的步骤在使用VB进行编程的过程中,经常需要与数据库进行交互,存储和检索数据。

在VB中,可以使用ADO(ActiveX Data Objects)来连接和操作数据库。

下面将详细介绍使用VB建立数据库的步骤。

第一步:引用ADO库在VB项目中,首先需要引用ADO库。

打开VB项目,点击“项目”菜单,选择“引用”,在弹出的对话框中选择“Microsoft ActiveX Data Objects Library”,点击“确定”按钮即可引用该库。

第二步:创建数据库连接在VB中,可以使用Connection对象来创建数据库连接。

首先需要声明一个Connection对象,然后使用Connection对象的Open方法打开数据库连接。

在Open方法中,需要指定数据库的连接字符串,包括数据库的类型、地址、用户名和密码等信息。

例如,可以使用以下代码创建一个与Access数据库的连接:```Dim conn As New ADODB.Connectionconn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:\path\to\database.mdb;User Id=admin;Password=;"conn.Open```在上述代码中,ConnectionString属性指定了连接字符串,其中Provider指定了数据库的类型为Access,Data Source指定了数据库文件的路径,User Id和Password指定了数据库的用户名和密码。

第三步:创建数据库表在建立数据库连接后,可以使用Execute方法执行SQL语句来创建数据库表。

在VB中,可以使用Create Table语句来创建表。

以下是一个创建名为"users"的表的示例代码:```conn.Execute "CREATE TABLE users (id INT, name VARCHAR(50), age INT)"```在上述代码中,通过Execute方法执行了一个SQL语句,该语句创建了一个名为"users"的表,包含了id、name和age三个字段。

vb.net从数据库中取数据

vb.net从数据库中取数据

从数据库中取数据1.设置从Model中的Sub Main 启动2.程序结构3.Model1Imports System.Windows.Forms.ApplicationModule Module1Sub Main()'form1 是测试多⽂档窗⼝'Dim frm1 As New Form1()'frm1.Show()Dim formStudentSysMain As New FormStudentSysMain()formStudentSysMain.Show()Do While TrueDoEvents()LoopEnd SubEnd Module4.FormStudentSysMain.vbImports System.Data.SqlClientPublic Class FormStudentSysMainPublic DBConnstr As String = "Data Source=LJJ-FF\LJJ;Initial Catalog=TestMvc;User ID=sa;Password=111111" Private Sub quitMenuItem_Click(sender As Object, e As EventArgs) Handles quitMenuItem.ClickEndEnd SubPrivate Sub selectinfoMenuItem_Click(sender As Object, e As EventArgs) Handles selectinfoMenuItem.ClickDim formSearchStudent As New FormSearchStudentformSearchStudent.MdiParent = MeformSearchStudent.WindowState = FormWindowState.NormalformSearchStudent.Show()End SubPrivate Sub updateinfoMenuItem1_Click(sender As Object, e As EventArgs) Handles updateinfoMenuItem1.Click Dim formStudentInfo As New FormStudentInfoFormSearchStudent.MdiParent = MeFormSearchStudent.WindowState = FormWindowState.NormalformStudentInfo.Show()End SubPrivate Sub importscoreMenuItem_Click(sender As Object, e As EventArgs) Handles importscoreMenuItem.Click Dim formStudentCourse As New FormStudentCourseFormSearchStudent.MdiParent = MeFormSearchStudent.WindowState = FormWindowState.NormalformStudentCourse.Show()End SubPrivate Sub cascadeMenuItem_Click(sender As Object, e As EventArgs) Handles cascadeMenuItem.ClickyoutMdi(MdiLayout.Cascade)End SubPrivate Sub horizonMenuItem_Click(sender As Object, e As EventArgs) Handles horizonMenuItem.ClickyoutMdi(MdiLayout.TileHorizontal)End SubPrivate Sub verticalMenuItem_Click(sender As Object, e As EventArgs) Handles verticalMenuItem.ClickyoutMdi(MdiLayout.TileVertical)End SubPrivate Sub FormStudentSysMain_Load(sender As Object, e As EventArgs) Handles MyBase.LoadEnd SubEnd Class5.FormSearchStudent.vbImports System.Data.SqlClientPublic Class FormSearchStudentPrivate Sub Label1_Click(sender As Object, e As EventArgs) Handles Label1.ClickEnd SubPrivate Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.ClickDim sqlConStr As String = My.Forms.FormStudentSysMain.DBConnstrDim sqlStr As String = "select * from student "Dim sqlDataAdapter As New SqlDataAdapterDim dataSet As New DataSetDim sqlConnection As New SqlConnection(sqlConStr)If Trim(txtName.Text) <> "" ThensqlStr = sqlStr & "where name like '%" & Trim(txtName.Text) & "%'"End IfsqlDataAdapter.SelectCommand = New SqlCommand(sqlStr, sqlConnection)sqlConnection.Open()sqlDataAdapter.Fill(dataSet)sqlConnection.Close()DataGridView1.DataSource = dataSet.Tables(0)End SubPrivate Sub FormSearchStudent_Load(sender As Object, e As EventArgs) Handles MyBase.Load End SubEnd Class6.运⾏结果。

如何在VB中使用FoxPro数据库-文档

如何在VB中使用FoxPro数据库-文档

如何在VB中使用Fox Pro数据库Visual Basic 是微软公司开发的一种面向对象的编程语言,功能强大,简单易学。

即便是初学者也可以在较短的时间内开发出质量高,界面友好的应用程序。

FoxPro 也是微软公司的产品,它是一款小型关系型数据库编程语言,在学校机关等的日常应用管理中,使用非常多,本文阐述如何在VB中使用Fox Pro数据库。

1、VB的数据访问技术在Visual Basic 中,可用的数据访问接口有三种:ActiveX 数据对象(ADO)、远程数据对象(RDO)和数据访问对象(DAO)。

数据访问接口是一个对象模型,它代表了访问数据的各个方面。

2)远程数据对象RD(ORemote Data Object )是一个到ODBC的、面向对象的数据访问接口,它是指在Client (客户端)与Server (服务器端)建立的数据访问模式,与DAC不同的是,DAO 是访问Access的Jet引擎的接口,而RDOW是访问ODBC勺接口,它可以通过ODBC区动程序来访问关系数据库。

RDO提供了用来访问存储过程和复杂结果集的更多和更复杂的对象、属性,以及方法。

3)ActiveX 数据对象AD(OActiveXData Object )是DAO/RDO的后继产物。

ADO在功能上与RDO更相似,它是为Microsoft新的数据访问接口OLE DB而设计的。

OLE DB是新的低层接口,它并不局限于ISAM、Jet 甚至关系数据源,它能够处理任何类型的数据,而不考虑它们的格式和存储方法,通过 OLE DB 所提 供的高性能的数据访问方法, 可以方便快速地对各种数据源进行 访问,这些数据源包括关系和非关系数据库、 电子邮件和文件系 统、文本和图形等等。

ADO 与 DAO 和RDOf 比,ADQ M 有对象模型简单、使用方便的特点,ADC 不但使Visual Basic 对数据的访问更加简单和灵极大地提高了系统的性能。

VB数据库详解

VB数据库详解

VB数据库详解引言:在软件开发中,数据库是非常重要的一个组成部分。

它可以允许我们存储和管理大量的数据,并且可以通过查询和操作这些数据来满足我们的业务需求。

在Visual Basic(VB)中,数据库的使用也变得非常常见和重要。

本文将详细介绍VB中的数据库相关知识,包括数据库的概念、VB中的数据库操作、数据访问对象 (DAO)和数据控件(Data Control)的使用。

一、数据库的概念数据库是一个有组织的数据集合,可以通过一定的模型进行存储和管理。

它可以提供强大的数据存储和查询功能,可以让我们轻松地存储和检索大量的数据。

数据库通常由表 (Table)组成,每个表都包含一系列的行和列,行代表数据的记录,列代表数据的字段。

表可以通过主键 (Primary Key)来建立关联关系和索引,以方便对数据的查询和操作。

二、VB中的数据库操作VB提供了多种方式来连接和操作数据库。

常见的数据库操作方式有ADO (ActiveX Data Objects)、DAO (Data Access Objects)和ODBC (Open Database Connectivity)等。

ADO是VB中最常用的数据库操作对象,它提供了一套完整的对象模型来访问和操作数据库。

通过ADO,我们可以连接数据库、执行SQL语句或存储过程、获取查询结果等。

DAO是VB中的另一个数据库操作对象,它类似于ADO,但是更加适用于Access数据库的操作。

ODBC是一种数据库连接标准,它可以让我们连接和操作各种不同类型的数据库。

三、数据访问对象(DAO)的使用DAO是VB中的一个非常重要的数据库访问对象,它可以帮助我们轻松地对数据库进行操作。

DAO提供了一套完整的对象模型,包括数据库 (Database)、表 (Table)、字段(Field)等。

通过DAO,我们可以连接数据库、执行SQL语句、执行事务操作等。

下面是一个使用DAO连接数据库的示例:Dim db As DatabaseSet db = OpenDatabase("C:\mydatabase.mdb")其中,OpenDatabase函数用于打开一个数据库文件,并返回一个数据库对象。

如何在VB中连接数据库

如何在VB中连接数据库

如何在VB中连接数据库
一、连接方式
1、ODBC数据库连接
打开新工程,在菜单栏上选择“工具”-“Data Links”,可以看到“数据链接”对话框,点击“新建”按钮,此时可以看到“ODBC
Microsoft登录”对话框,点击“帐户”按钮,此时可以看到“ODBC Microsoft登录”对话框,在“服务器”框中填入数据库服务器的IP地址,在“用户名”和“口令”框中填入账号和密码,点击“测试”按钮,
确认能够通过测试,然后点击“完成”按钮,可以得到正确的数据库连接。

2、ADO连接
在工程中添加引用,选择Microsoft ActiveX Data Object 2.8 Library(或者是更高版本),在程序中添加如下代码:
Private Sub Form_Loa
Dim conn As ADODB.Connection
Set conn = New ADODB.Connection
End Sub
其中,Data Source指定数据库的IP地址,Initial Catalog指定数
据库名,User ID指定数据库用户名,Password指定数据库口令。

3、DAO连接
打开新工程,在菜单栏上选择“工具”-“Data Links”,可以看到“数据链接”对话框,点击“新建”按钮,此时可以看到“DAO
Microsoft登录”对话框,在“服务器”框中填入数据库服务器的IP地址,在“用户名”和“口令”框中填入账号和密码,点击“测试”按钮,
确认能够通过测试,然后点击“完成”按钮,可以得到正确的数据库连接。

VB与数据库连接的几种方法

VB与数据库连接的几种方法

VB与数据库连接的几种方法在VB中,与数据库进行连接的方式有多种,可以根据不同的需求选择不同的方法。

下面将介绍几种常用的连接数据库的方法。

1.使用ADO连接数据库:ADO(ActiveX Data Objects)是一种用于连接数据库的COM组件,它提供了一套广泛的API,用于与各种数据库进行交互。

使用ADO连接数据库的基本步骤如下:(1)引入ADO组件:在VB的项目中,需要通过引入ADO组件来使用ADO的功能。

在“项目”菜单中选择“引用”,然后勾选“微软ActiveX数据对象库”即可。

(2)创建连接对象和命令对象:使用ADO连接到数据库需要创建两个核心对象,即连接对象和命令对象。

连接对象用于建立与数据库的连接,命令对象用于执行SQL语句。

(3)打开数据库连接:使用连接对象的Open方法来打开数据库连接。

(4)执行SQL语句:使用命令对象的Execute方法执行SQL语句,可以执行查询、插入、更新、删除等操作。

(5)关闭数据库连接:使用连接对象的Close方法关闭数据库连接。

2.使用ODBC连接数据库:ODBC(Open Database Connectivity)是一种通用的数据库访问接口,可以连接各种类型的数据库,包括Access、SQL Server、MySQL等。

VB提供了对ODBC的支持,可以使用ODBC连接数据库。

(1)设置ODBC数据源:在Windows的“控制面板”中选择“管理工具”->“ODBC数据源”,配置一个ODBC数据源,指定要连接的数据库。

(2)在VB中连接数据库:在VB中使用ODBC连接数据库需要通过ODBC数据源名来建立连接。

例如:```Dim conn As New ADODB.Connectionconn.ConnectionString = "Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\myDB.mdb;Uid=Admin;Pwd=; "conn.Open```(3)执行SQL语句:通过ADO连接对象执行SQL语句,与使用ADO 连接数据库的方式相同。

vb界面限定条件显示数据库表数据

vb界面限定条件显示数据库表数据

vb界面限定条件显示数据库表数据VB界面限定条件显示数据库表数据一、引言在VB界面中,我们经常需要根据一定的条件来显示数据库表中的数据。

本文将介绍如何使用VB编程实现根据限定条件来显示数据库表数据的功能。

二、准备工作1. 安装并配置数据库:我们需要安装一个数据库管理系统,例如MySQL或SQL Server,并创建一个数据库。

在该数据库中创建一个表,用于存储我们要显示的数据。

2. 创建VB项目:打开Visual Studio,选择新建一个VB项目。

在项目中添加一个DataGridView控件和相关的文本框或下拉列表框等控件,用于输入限定条件。

3. 引用库:在VB项目中引用System.Data和System.Data.SqlClient两个命名空间,以便使用库进行数据库操作。

三、连接到数据库1. 创建连接字符串:在VB代码中定义一个连接字符串,用于连接到数据库。

连接字符串包含了数据库的信息,例如服务器地址、用户名、密码等。

2. 建立数据库连接:使用SqlConnection类创建一个新的数据库连接对象,并将之前定义的连接字符串作为参数传入。

调用Open方法打开连接。

四、查询数据1. 编写SQL语句:根据用户输入的限定条件,编写SQL语句来查询符合条件的数据。

可以使用SELECT语句,并通过WHERE子句指定限定条件。

2. 创建命令对象:使用SqlCommand类创建一个新的命令对象,并将之前建立的数据库连接对象作为参数传入。

将编写好的SQL语句赋值给命令对象的CommandText属性。

3. 执行查询:调用命令对象的ExecuteReader方法来执行查询,并将结果保存在一个DataReader对象中。

五、显示数据1. 绑定数据源:将DataReader对象作为DataGridView控件的数据源,通过调用DataGridView的DataSource属性进行绑定。

2. 显示数据:使用DataGridView控件自动根据绑定的数据源显示查询结果。

vb sql数据库查询语句

vb sql数据库查询语句

vb sql数据库查询语句VB SQL数据库查询语句是一种在VB程序中使用的语言,用于检索和操作数据库中的数据。

数据库查询语句是编写在VB代码中的一段代码,在执行时会连接数据库,并根据指定的条件和需求,从数据库中提取所需要的数据。

本文将以VB SQL数据库查询语句为主题,详细介绍其使用方法和步骤。

第一部分:VB SQL数据库查询语句的基本概念和语法VB SQL数据库查询语句是一种结构化查询语言(SQL),用于在VB程序中与数据库进行交互。

SQL语言由一系列的关键字和特定的语法规则组成,用于查询、插入、更新和删除数据库中的数据。

在VB程序中,可以使用ADO(ActiveX Data Objects)对象模型来连接和操作数据库。

下面是一段基本的VB SQL查询语句的语法:vbDim conn As New ADODB.ConnectionDim rs As New ADODB.RecordsetDim strSQL As String' 连接数据库conn.Open "Provider=SQLOLEDB;DataSource=myServerAddress;Initial Catalog=myDataBase;UserId=myUsername;Password=myPassword;"' 查询语句strSQL = "SELECT * FROM TableName WHERE Condition"' 执行查询rs.Open strSQL, conn' 处理查询结果If Not rs.EOF Then' 循环处理记录集Do Until rs.EOF' 处理每条记录' 可以通过rs.Fields("字段名")获取字段值rs.MoveNextLoopEnd If' 关闭连接和记录集rs.Closeconn.Close在上述代码中,我们首先创建了一个ADODB.Connection对象来连接数据库,然后创建了一个ADODB.Recordset对象来保存查询结果。

VB中用ADO操作数据库

VB中用ADO操作数据库

VB中用ADO操作数据库ADO(ActiveX Data Objects)是一种在Visual Basic中用于数据库访问的技术。

它是一组面向对象的组件,可以让开发者直接从应用程序中连接到数据库,并执行各种数据库操作,如查询、插入、更新和删除。

ADO提供了一个统一的编程模型,可以与多种数据库进行交互,无论是局域网中的Access数据库还是企业级的SQL Server数据库。

在VB中使用ADO操作数据库,通常需要以下步骤:1. 引用ADO库:在VB的项目中,需要引用Microsoft ActiveXData Objects库。

可以在“项目”->“引用”中找到并选中“Microsoft ActiveX Data Objects Library”。

2. 创建连接:在VB代码中,首先需要创建一个Connection对象,用于连接到数据库。

可以使用ADODB.Connection类来创建连接对象,例如:Dim conn As ADODB.ConnectionSet conn = New ADODB.Connection3. 连接数据库:使用Connection对象的Open方法,传入数据库连接字符串及相关参数,来连接到数据库。

连接字符串可以指定数据库类型、主机名、用户名、密码等信息。

例如:conn.ConnectionString = "Provider=SQLOLEDB;DataSource=ServerName;Initial Catalog=DatabaseName;UserID=UserName;Password=Password"conn.Open4. 执行SQL语句:使用Connection对象的Execute方法,传入SQL 语句来执行数据库操作。

例如:conn.Execute "INSERT INTO TableName (Column1, Column2) VALUES ('Value1', 'Value2')"5. 获取查询结果:对于查询操作,可以使用Recordset对象来获取查询结果。

vb连接access数据库及数据读写操作

vb连接access数据库及数据读写操作

ACCESS数据库和VB的连接Edited by Ryan 20131、建立Access数据库2、启动VB,建立标准EXE图13、添加ActiveX控件鼠标指向任意VB控件,单击右键,选择“部件(O)”,出现图3所示界面图2图3选择部件“Microsoft ADO Data Control 6.0 (OLEDB)”,出现如图4所示控件图44、添加控件Adodc图54、在控件Adodc上添加数据源鼠标指向控件Adodc1,单击右键,选择“ADODC 属性”,弹出如图7所示界面图6图7单击“生成(U). . .”,弹出如图8所示界面图8选择“Microsoft Jet 4.0 OLE DB Provider”,单击“下一步(N) >>”,弹出如图9所示界面图9单击“. . .”,添加数据源(第一步所建Access 数据库),如图10所示图10单击“测试连接(T)”,出现提示框,如图11所示图11之后点击“确定”,退回到如图12所示界面图12单击“记录源”,弹出如图13所示界面图13在“命令类型”下,选择“1 - adCmdText”,在“命令文本(SQL)”下,输入“Select * from test1”,最后单击“应用”,“确定”即可之后,进入程序书写部分程序部分需要注意接头形式及简单例子如下:Private Sub Command1_Click() ‘VB按钮控件Dim mydb As New ADODB.Connection ‘定义新的数据库连接mydb.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\read database\test1\test1.mdb" ‘数据库绝对路径Dim rs As New ADODB.Recordset ‘定义数据库的一个对象mydb.Open ‘打开数据库rs.Open "select * from test1", mydb, 3, 3 ‘打开数据库中的表test1For i = 1 To 1 ! For循环控制选择哪一行rs.MoveNextNext iMe.Text1.Text = rs.Fields(1).Value ‘读取指定行中的哪个数据给文本框rs.Update ‘数据显示rs.Close ‘关闭表End Sub。

使用VB数据控件访问数据库

使用VB数据控件访问数据库

使用VB数据控件访问数据库Visual Basic是一种功能强大的编程语言,它允许程序员使用数据控件访问数据库。

在本文中,我们将介绍如何使用VB数据控件来连接和操作数据库。

首先,我们需要使用VB的数据控件来建立与数据库的连接。

VB提供了多种数据控件,包括ADO控件(ActiveX Data Objects,ActiveX数据对象)、DAO控件(Data Access Objects,数据访问对象)和ODBC控件(Open Database Connectivity,开放数据库连接)等。

在这里,我们将使用ADO控件。

要使用ADO控件,我们首先需要将其添加到项目中。

打开VB的开发环境,选择"工具"->"选项"->"控件"选项卡。

在这里,我们可以看到可用的控件列表。

找到ADO控件并勾选它,然后点击"应用"和"确定"。

在VB的表单上添加一个数据控件(如ADODC控件),这个控件将用于建立与数据库的连接。

在属性窗口中,我们可以设置连接字符串,选择需要连接的数据库,以及指定用户名和密码等。

可以使用连接字符串来指定连接的数据库类型和位置,如"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:\mydatabase.mdb;User Id=admin;Password=;"一旦连接到数据库,我们就可以使用数据控件来执行各种数据库操作,如查询、插入、更新和删除等。

数据控件提供了一些方法和属性,可以轻松地执行这些操作。

此外,我们还可以使用数据控件的AddNew方法和Update方法来插入和更新数据库记录。

例如,我们可以使用Recordset.AddNew方法添加一条新的记录,然后使用Recordset.Update方法将更改保存到数据库中。

当我们完成对数据库的操作后,我们需要关闭数据库连接。

VB中使用语句创建SQL数据库等操作

VB中使用语句创建SQL数据库等操作

VB中使用语句创建SQL数据库等操作(转载)发表:xhlbwb阅读: 1257次关键字:不详字体:[大中小]这个小工具由VB开发,利用ADO 访问数据库,实现更改数据库结构,其他语言也可以此作为参考。

启动VB6.0,新建一个工程,在菜单-工程-引用里选"Microsoft ActiveX Data Objects 2.0 Library",代码里需要有dim conn As New ADODB.Connection定义ADO数据库对象conn.ConnectionString = "driver={SQL Server};" & _"server=" & ServerName & ";uid=" & UserName & ";pwd=" & Password & ";database=" & DatabaseName & ""连接数据串conn.open 连接数据库注:ServerName为服务器名;UserName为用户名;Password为用户口令; DatabaseName 要登录的数据库名,可以为空。

核心代码如下:一、建立数据库原理:建立数据库先要初始化一个数据库设备,然后在此设备上建立数据库。

所有的设备名在系统表"sysdevices"里有记录,所有的数据库名在系统表"sysdatabases"里有记录。

在建立之前,最好先查询这两个系统表,看名称是否已经存在。

在建立设备之前,还需要的一个物理名和空闲的设备标识号。

初始化设备语法:DISK INIT NAME="device_name",PHYNAME="physical_name",VDEVNO=device_number,SIZE=numberofblock说明:这里,NAME是数据库设备名(一个有效的标识符),PHYNAME(数据库设备的物理名)是原始的磁盘分区UNIX或外设(vms)名,或者是操作系统的文件名。

使用VB访问数据库

使用VB访问数据库
使用DAO的程序编码非常简单,DAO提供丰富 的游标(Cursor)类型的结果集和非游标 (Cursor Less)类型的结果集,同DDL(数 据描述语言)的功能很类似。
DAO模型是设计关系数据库系统结构的对象类的 集合。
➢它们提供了完成管理这样一个系统所需的全部操作的 属性和方法,包括创建数据库,定义表、字段和索引, 建立表间的关系,定位和查询数据库等工具。
OLE DB与ADO
OLE DB(Object Linking and Embedding for DataBase)数据库对象链接和嵌入
MS采用通用数据访问的方法,“你自己保存数 据,我们给你提供一种方法来访问这些数据。”
实际上就是一种进行关系型数据和非关系型数据 一样的技术。
OLE DB定义:
?使用daoodbcdirect功能可以实现远程rdo功能关系数据库sqlsever200oracleaccess等通过odbc应用程序使用rdo访问数据库daojetrdoodbcjet通知odbc访问服务器数据库数据库databaseodbc允许jet或rdo访问服务器数据库jet不能直接访问服务器accessjet可以直接访问access数据库缺点?dao与rdo只能处理后台为关系数据库的dbms不能解决通用数据存储及通用数据访问
Recordset对象
Recordset对象(记录集对象)
用来管理某个查询返回的记录集以及记录集中的 游标。
声明:对每一个需要操作的查询结构可以声 明一个Recordset对象
Dim cn As New ADODB. Recordset
Recordset属性
1、CursorType 属性 (游标类型)
ODBC允许JET或 RDO访问服务器数 据库

建立数据库并在VB中读取数据

建立数据库并在VB中读取数据

可以找一本VB的书,找到创建数据库的章节,根据步骤,建立一个数据库。

建成的数据库是可以在office access中打开的如图。

视化数据管理器是VB提供的一个非常实用的、可视化的数据库管理工具。

使用它可以非常方便地完成创建数据库、建立数据表、数据库查询等工作。

可视化的工作界面为用户带来了极大的方便。

本设计中建立一个名为“记录数据.mdb”的数据库,并在其中创建了表“监测数据”,在表中设计了五个字段的数据列,分别是转速、电机电流、直流母线电压、有功功率和无功功率。

如图3-17所示。

调用数据库的程序如下:Private Sub Timer1_Timer() '每隔一秒从数据库中读取一行数据TimeCount = TimeCount + 1Dim m As StringAdodc1.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=D:\VB\a 保存的文件\记录数据.mdb;Persist Security Info=False" ‘打开数据库Adodc1.RecordSource = "select * from 监测数据" ‘选择数据库中的监测数据表格Adodc1.RefreshAdodc1.Recordset.MoveFirst ‘读首行数据N = Adodc1.Recordset.RecordCountFor i = 0 To N - 1m = Adodc1.Recordset.Fields(0)If m = TimeCount Then ‘读取m列的数据Text1.Text = Adodc1.Recordset.Fields(1) '转速读取Text2.Text = Adodc1.Recordset.Fields(2) '电流读取Text4.Text = Adodc1.Recordset.Fields(3) '电压读取Text5.Text = Adodc1.Recordset.Fields(4) '温度读取Text6.Text = Adodc1.Recordset.Fields(5) '无功功率读取Text14.Text = Adodc1.Recordset.Fields(6) '有功功率读取Exit SubElseAdodc1.Recordset.MoveNextEnd IfNext iEnd Sub电流的波形为近似的正弦波,如图3-12所示。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

可以找一本VB的书,找到创建数据库的章节,根据步骤,建立一个数据库。

建成的数据库是可以在office access中打开的如图。

视化数据管理器是VB提供的一个非常实用的、可视化的数据库管理工具。

使用它可以非常方便地完成创建数据库、建立数据表、数据库查询等工作。

可视化的工作界面为用户带来了极大的方便。

本设计中建立一个名为“记录数据.mdb”的数据库,并在其中创建了表“监测数据”,在表中设计了五个字段的数据列,分别是转速、电机电流、直流母线电压、有功功率和无功功率。

如图3-17所示。

调用数据库的程序如下:
Private Sub Timer1_Timer() '每隔一秒从数据库中读取一行数据
TimeCount = TimeCount + 1
Dim m As String
Adodc1.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=D:\VB\ a保存的文件\记录数据.mdb;Persist Security Info=False" ‘打开数据库Adodc1.RecordSource = "select * from 监测数据" ‘选择数据库中的监测数据表格
Adodc1.Refresh
Adodc1.Recordset.MoveFirst ‘读首行数据
N = Adodc1.Recordset.RecordCount
For i = 0 To N - 1
m = Adodc1.Recordset.Fields(0)
If m = TimeCount Then ‘读取m列的数据
Text1.Text = Adodc1.Recordset.Fields(1) '转速读取
Text2.Text = Adodc1.Recordset.Fields(2) '电流读取
Text4.Text = Adodc1.Recordset.Fields(3) '电压读取
Text5.Text = Adodc1.Recordset.Fields(4) '温度读取
Text6.Text = Adodc1.Recordset.Fields(5) '无功功率读取
Text14.Text = Adodc1.Recordset.Fields(6) '有功功率读取Exit Sub
Else
Adodc1.Recordset.MoveNext
End If
Next i
End Sub
电流的波形为近似的正弦波,如图3-12所示。

图3-12 电机电流实时波形
图3-13直流母线电压实时波形图3-14 转速实时波形
图3-15 有功功率实时波形
图3-16 无功功率实时波形。

相关文档
最新文档