精华内容
下载资源
问答
  • VB.NET数据库中插入数据

    千次阅读 2020-05-12 22:04:41
    本次继续,往数据库添加数据,数据库仍然采用上数据库联结中那个,本文只记录一下,通过VB.NET程序,往数据库中插入数据的步骤,至于原理自己掌握的水平有限,不过多深究,下面进入正题,开搞。 、首先我们...

    本文记录一下如何通过VB.NET往数据中添加数据,所用数据库仍然用上节数据库联结那个,下图为设计的窗体应用程序,内容很简单,点击学生信息表,往这个表添加数据,点击学生成绩表往相应表添加数据。

    在这里插入图片描述
    图1
    二、接下来讲述代码部分,在这里先把完整代码晒出来,如下。

    Imports System.Data.OleDb
    Public Class Form1
        Dim odc1 As New OleDbConnection()  '数据库操作
        Dim odcommand As New OleDbCommand()
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    
            odc1.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0;data source=E:\博客\数据库联结\Database7.mdb"
            odc1.Open()
        End Sub
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim Strxzyh As String
            Strxzyh = "insert into 学生信息表 (学号,姓名,性别) " & "values ('" & "2020512" & "','" & "小红" & "','" & "女" & "')"
            odcommand.CommandText = Strxzyh
            odcommand.Connection = odc1
            odcommand.ExecuteNonQuery()
        End Sub
    
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            Dim Strxzyh As String
            Strxzyh = "insert into 学生成绩表 (学号,数学,语文,英语) " & "values ('" & "2020512" & "','" & "99" & "','" & "98" & "','" & "99" & "')"
            odcommand.CommandText = Strxzyh                                     '千万注意标点符号要用英文的!!!!切记切记
            odcommand.Connection = odc1
            odcommand.ExecuteNonQuery()
        End Sub
    End Class
    
       首先,程序最开头的   Imports System.Data.OleDb是第一步,只有引用了这个,下边的程序才能操作数据库,不引用的话,下边的操作会报错。接着又定义了两个odc1和odcommand,这两个作用,我自己理解为,一个数据库连接用,一个操作数据库用,也是不可缺少的。接着就需要连接数据库了,下边那句为连接数据库**odc1.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0;data source=E:\博客\数据库联结\Database7.mdb"**,Microsoft.Jet.OLEDB.4.0;好像针对电脑系统的不同,好像还有其他的语句,我这是WIN10的64位,可以直接运行,也就没深究,接下来就是定义到,想要连接数据库的位置了,位置一定要写对,否则在打开数据库时,就会出现文件名无效的错误。
       接下来就是两个按钮的程序了,在写 Strxzyh = "insert into 学生成绩表 (学号,数学,语文,英语) " & "values ('" & "2020512" & "','" & "99" & "','" & "98" & "','" & "99" & "')"这段代码时,一定要是在英文输入法的前提下,标点符号也要英文的,若为中文的运行时会报错的,深有体会,切记!切记!切记!,设置完插入值后,剩下的三句是必须的,以上就是所有的过程。点击两个按钮后,结果如图2,图3.可以看到图3的联结字段插入了代码插入的数据。
    

    在这里插入图片描述
    图2在这里插入图片描述
    图3
    以上就是数据库中插入数据步骤,老规矩总结。
    1、首先引入 Imports System.Data.OleDb
    2、定义连接和传递命令的语句
    3、连接数据库
    4、插入数据
    好了,就这么多,如有不对请见谅,请指出,灰常感谢。

    展开全文
  • VB ACCESS数据库的修改、删除、添加

    千次阅读 2013-09-08 21:50:18
    VB ACCESS数据库的修改、删除、添加 Private Sub Command1_Click() Dim s As String Dim Conn As New ADODB.Connection Dim Rs As New ADODB.Recordset Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data...

    VB  ACCESS数据库的修改、删除、添加

    Private Sub Command1_Click()
    Dim s As String
    Dim Conn As New ADODB.Connection
    Dim Rs As New ADODB.Recordset
    Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\mydb.mdb"
    '请将数据库名及路径换成你的实际数据库名及路径
    Dim UserName As String
    Dim Password As String

    s = Text1.Text
    If s = "1" Or s = "2" Then
    UserName = InputBox("请输入用户名")
    Password = InputBox("请输入用户密码")
    sql = "Select * From [UserInfo] where User='" & UserName & "'"
    'UserInfo请换成你的实际数据表名

    Rs.Open sql, Conn, 1, 3
    If Rs.EOF Then
    MsgBox "没有找到此用户"
    Else
    If Rs("Password") = Password Then
    If s = "1" Then
    MsgBox "123"
    ElseIf s = "2" Then
    MsgBox "456"
    End If
    Else
    MsgBox "密码错误"
    End If
    End If
    End If
    End Sub
    上面的例子实现了查询
    如果是要添加,删除,更新等操作,只要编写相应的SQL语句,再用
    Conn.Execute SQL 就可以了,如:
    添加的:
    SQL="Insert Into [UserInfo](User,Password) Values('aaaa','1234')"
    Conn.Execute SQL '执行后,就添加了一条记录
    删除:
    SQL="Delete From [UserInfo] Where User='aaaa'"
    Conn.Execute SQL '删除用户名为aaaa的用户记录
    更新:
    SQL="Update [UserInfo] Set Password='abcdefg' Where User='aaaa'"
    Conn.Execute SQL '执行后,修改用户aaaa的密码为abcdefg
    以上只是示例,在实际使用过程中,可以将一些内容用控件输入等方式进行,这样就有很大的灵活性了


    动态创建数据库

    引用 microsoft DAP 3.6 Object Library
    Dim myDB As DAO.Database
    Set myDB = CreateDatabase(App.Path + "\111.mdb", dbLangGeneral) '如果不存在数据库
    Set myDB = OpenDatabase(App.Path + "\111.mdb") '如果存在数据库
    Dim str_SQL As String
    str_SQL = "Create Table NewTable1(Field1 Text(10),Field2 Short)"
    myDB.Execute str_SQL
    str_SQL = "Create Table NewTable2(Field1 Text(10),Field2 Short)"
    myDB.Execute str_SQL
    myDB.Close

    向已经建好的数据库中添加记录
    建立数据库a,表名字b,字段c,文本格式,在窗体上画一command ,画一个文本框,这个代码就是将文本内容写入数据库

    要先引用microsoft activeX data object 2.5 library
    代码如下:

    Private Sub Command1_Click()
    Dim cnDk As New ADODB.Connection
    Dim strDk As String
    Dim rDk As New ADODB.Recordset
    Dim sql As String

    strDk = "DBQ=" & App.Path & "\a.mdb;Driver={Microsoft Access Driver (*.mdb)};"
    cnDk.Open strDk
    sql = "insert into b (c) values ('" & text1.text& "')"
    cnDk.Execute sql
    cnDk.Close
    Set cnDk = Nothing
    End Sub

    在数据库中添加多条记录

    只要可以进行输入文本的都可以
    改一下这些吧,你单击一次就提示输入一次,输完了自动保存
    改后
    Data1.Recordset.AddNew
    Data1.Recordset.Fields("username") = trim(inputbox("请输入名字"))
    Data1.Recordset("password") =val(trim(inputbox("请输入电话")))
    Data1.UpdateRecord
    ——————————————————————————————
    Data1.Recordset.AddNew
    Data1.Recordset.Fields("username") = "张三|"
    Data1.Recordset("password") = "fsdfsd"
    Data1.UpdateRecord
    Data1.Recordset.AddNew
    Data1.Recordset.Fields("username") = "李四|"
    Data1.Recordset("password") = "fsdf432d"
    Data1.UpdateRecord
    Data1.Recordset.AddNew
    Data1.Recordset.Fields("username") = "王五|"
    Data1.Recordset("password") = "f42342d"
    Data1.UpdateRecord
    MsgBox "adad"

    ========================================================================================
    vb+access 数据库的记录的添加与删除
    Dim cn As New ADODB.Connection
    Dim rs As New ADODB.Recordset

    Private Sub Command2_Click()
    Set rs = cn.Execute("select * from wenzhang where 内容='" & Text1.Text & "'")
    If Text1.Text = "" Then
    MsgBox ("文章不能为空!")
    ElseIf rs.EOF = False Then
    MsgBox ("文章不能重复!")
    Else
    cn.Execute ("insert into wenzhang values('" & Combo1.Text & "','" & Text3.Text & "','" & Text4.Text & "','" &

    Text1.Text & "')")
    MsgBox ("ok")
    End If
    End Sub
    '添加按钮
    Private Sub Command3_Click()
    Dim myval As String
    Set rs = cn.Execute("select * from wenzhang where 内容='" & Text1.Text & "'")
    If rs.EOF Then
    myval = MsgBox("是否保存文章?", vbInformation + vbYesNoCancel, "提示")
    If myval = vbYes Then
    cn.Execute ("insert into wenzhang values('" & Combo1.Text & "','" & Text3.Text & "','" & Text4.Text & "','" &

    Text1.Text & "')")
    MsgBox ("保存成功")
    Else
    Combo1.Text = ""
    End If
    Else
    Text1.Text = ""
    Combo1.Text = ""
    End If
    End Sub
    '删除按钮
    Private Sub Command4_Click()
    If Text1.Text = "" Then
    MsgBox ("不能删除空记录!")
    Else
    Dim myval As String
    myval = MsgBox("是否删除文章?", vbInformation + vbYesNo, "提示")
    If myval = vbYes Then
    Set rs = cn.Execute("delete from wenzhang where 内容 ='" & Text1.Text & "'")
    MsgBox ("删除成功!")
    End If
    End If
    End Sub
    '连接数据库
    Private Sub Form_Load()
    cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\vb.net\temp.mdb;Persist Security Info=False"
    cn.CursorLocation = adUseClient
    cn.Open
    End Sub

    展开全文
  • 学习记录VB.NET.操作ACCESS数据库

    千次阅读 2019-06-13 16:21:58
    从98年到现在,VB6使用了20多年,真的舍不得扔掉,但是随着新计算机预装操作系统的版本越来越高,做好...今天学习在VB.NET上操作ACCESS数据库,为防止将来忘记,记录于此。 、清空某张表中的全部数据 Dim cn As...

    从98年到现在,VB6使用了20多年,真的舍不得扔掉,但是随着新计算机预装操作系统的版本越来越高,做好的安装包在安装时遇到的问题越来越多,无奈之下只能转向使用VB.NET了。安装了VS2005来学习,这个家伙不错,个头不是特大,在xp上跑的很顺畅,哈哈。

    今天学习在VB.NET上操作ACCESS数据库,为防止将来忘记,记录于此。

    一、清空某张表中的全部数据

            Dim cn As OleDbConnection
            cn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "\Comm.mdb")
            cn.Open()                                                                                                                      '打开当前文件夹下comm.mdb文件

            Dim cmd As New OleDbCommand()
            cmd.Connection = cn
            cmd.CommandText = "delete * from tbTest"                                                              '清空表tbTest
            cmd.ExecuteNonQuery()

            cmd.Dispose()                                                                                         '释放资源
            cn.Close()
            cn.Dispose()                                                                                            '释放资源 感觉很像VB6里的 set xx=nothing
            MessageBox.Show("全部删除完成")

    二 向某张表插入数据

            Dim cn As OleDbConnection
            cn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "\Comm.mdb")
            cn.Open()                                                                                             '打开当前文件夹下comm.mdb文件

            Dim cmd As New OleDbCommand()
            cmd.Connection = cn

            Dim id As Long
            Dim sex As String
            Dim address As String

            id = 1
            sex = "男"
            address = "松山区"
            cmd.CommandText = "insert into tbtest (id,sex,address) values(" & id & "," & Chr(39) & sex & Chr(39) & "," & Chr(39) & address & Chr(39) & ")"
            cmd.ExecuteNonQuery()

            id = 2
            sex = "男"
            address = "红山区"
            cmd.CommandText = "insert into tbtest (id,sex,address) values(" & id & "," & Chr(39) & sex & Chr(39) & "," & Chr(39) & address & Chr(39) & ")"
            cmd.ExecuteNonQuery()

            id = 3
            sex = "女"
            address = "元宝山区"
            cmd.CommandText = "insert into tbtest (id,sex,address) values(" & id & "," & Chr(39) & sex & Chr(39) & "," & Chr(39) & address & Chr(39) & ")"
            cmd.ExecuteNonQuery()


            cmd.Dispose()
            cn.Close()
            cn.Dispose()
            MessageBox.Show("插入3行测试完成")
     

    三 修改

            Dim cn As OleDbConnection
            cn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "\Comm.mdb")
            cn.Open()                                                                                             '打开当前文件夹下comm.mdb文件

            Dim cmd As New OleDbCommand()
            cmd.Connection = cn
            Dim strNewAddress As String
            strNewAddress = "平庄"
            Dim strCondition As String
            strCondition = "元宝山区"
            cmd.CommandText = "update tbtest set address=" & Chr(39) & strNewAddress & Chr(39) & " where address=" & Chr(39) & strCondition & Chr(39)
            cmd.ExecuteNonQuery()


            cmd.Dispose()
            cn.Close()
            cn.Dispose()
            MessageBox.Show("修改测试完成")

    四 删除

            Dim cn As OleDbConnection
            cn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "\Comm.mdb")
            cn.Open()                                                                                             '打开当前文件夹下comm.mdb文件

            Dim cmd As New OleDbCommand()
            cmd.Connection = cn
            Dim strCondition As String
            strCondition = "平庄"
            cmd.CommandText = "delete from tbtest where address=" & Chr(39) & strCondition & Chr(39)
            cmd.ExecuteNonQuery()


            cmd.Dispose()
            cn.Close()
            cn.Dispose()
            MessageBox.Show("删除测试完成")
     

    五 查询

            Dim cn As OleDbConnection
            cn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "\Comm.mdb")
            cn.Open()                                                                                             '打开当前文件夹下comm.mdb文件

            Dim lngIDCondition As Long
            lngIDCondition = 2
            Dim strSexCondition As String
            strSexCondition = "男"

            Dim cmd As New OleDbCommand() 
            cmd.Connection = cn
            cmd.CommandText = "select * from tbTest where id=" & lngIDCondition & " and sex=" & Chr(39) & strSexCondition & Chr(39)

            Dim dr As OleDbDataReader
            dr = cmd.ExecuteReader()

            If dr.HasRows() = True Then
                Do While dr.Read() = True                                   '如果有记录,就循环打印符合条件的记录的address字段中内容
                    Debug.Print(dr.Item("id") & " " & dr.Item("sex") & " " & dr.Item("Address"))
                Loop
            Else
                MessageBox.Show("搜索失败")
            End If
            dr.Close()
            '结果为
            '2 男 红山区

            '查询全部
            cmd.CommandText = "select * from tbTest order by id"
            dr = cmd.ExecuteReader()
            If dr.HasRows() = True Then
                Do While dr.Read() = True                                               '如果有记录,就循环打印符合条件的记录的address字段中内容
                    Debug.Print(dr.Item("id") & " " & dr.Item("sex") & " " & dr.Item("Address"))
                Loop
            End If
            '结果为
            '1  男  松山区
            '2  男  红山区

            dr.Close()
            cmd.Dispose()
            cn.Close()
            cn.Dispose()
     

    六 总结

    练习后发现,除了查询,VB.NET操作ACCESS数据库的方法与VB6使用差不多,仅仅变量类型不一样。

    但是查询要麻烦些。

     

     

     

     

     

     

     

     

     

    展开全文
  • vb数据库编程()--记录集Recordset

    千次阅读 2011-04-05 15:53:00
    转自SOHU博客VB菜鸟堂

    记录集是从数据库中按一定查询条件读入到内存中的一批记录,以供快速的操作。
    记录集recordset对象的属性,方法:
    BOF:当记录集记录指针指到起始记录(第1条记录)再向前移(即超过第1条记录),这时返回true.常用来对付一些出错情况。注:在BOF或EOF时使用update方法会出错。
    EOF:当记录指针指到最后一条记录之后(即超过了最后1条记录)时,该属性返回true.注:当一个记录集为空时,其BOF和EOF属性都为True,可据此检测一个记录集是否为空。
    AbsolutePosition:返回当前记录指针,即当前记录是第几条记录,只读。
    BookMark: 设置/返回当前记录指针的书签,为字符串。如:
    在当前记录处设置书签:lxn=Adodc1.Recordset.BookMark
    当指针移动后回到指定书签位置:Adodc1.Recordset.BookMark=lxn.
    返回记录集中记录的总数:RecordCount属性。该属性对于表形式的记录集将返回精确数目,但对于仅向前型记录集(adOpenForwardOnly),返回-1。动态记录集(adOpenDynamic)则不一定,可能返回-1,与记录集的CursorLocation有关;而对于静态记录集(adOpenStatic),也总能返回精确数目。附:在DAO中,对动态集和快照集需要先用MoveFirst和Movelast方法,再用RecordCount取得记录精确数目。
    Move方法:移动记录集指针。该方法有两个参数,第一个参数指定要向前或向后移动多少条记录,第二个参数指定一个相对书签位置,表明从当前记录还是从第1条或最后1条记录开始算,缺省为0从当前记录开始移,将指针从当前位置向前(负数)或向后(正数)移动指定条记录(第二个‘按书签移动’参数设为0-adBookMarkCurrent从当前记录开始,缺省)或将指针从第1条记录算起移动指定条记录(第二个参数设为1-adBookMarkFirst从首记录)。或将指针从最后1条记录算起移动指定条记录(第二个参数设为adBookMarkLast),如:Adodc1.Recordset.Move -12,将指针从当前位置向前移动12条记录,再如Adodc1.Recordset.Move 6 , 1表示指针从首记录开始后移6条记录,即使指针移到第7条记录。Move方法有几个引申的方法,如下:
    movefirst,记录集指针移到第1条记录;
    movelast,记录集指针移到最后1条记录;
    moveprevious,记录集指针移到上一条记录;
    movenext,记录集指针移到下一条记录。
    Find方法:查找满足条件的记录。
    find方法简略格式为:
    adodc对象.recordset.find 查找表达式(为“字段 比较符号 值”)
    其他参数采用缺省,find工作方式是:从当前记录指针位置开始(含当前记录)向后逐条检索记录,遇到满足条件的1条记录就停下来,指针指到此记录。
    因此,若要实现“继续寻找下1个”的功能,只要将记录指针移到下1条记录(用movenext一下),再照原样使用find即可。 而重新查找必须先用movefirst将指针指到开头。
    Adodc1.Recordset.find "姓名 = '李长春'"
    其中查找表达式的样子为“字段 比较符号 值”,比较符号不仅可以是等号,还可以是>,<,<=,>=,<>,like等。其中Like和 = 很相近,只不过like专用于字符串比较,不区分字母的大小写可用通配符,而 = 号会区分字母大小写不能用通配符。
    一般情况下,查找表达式常采用变量表示,由用户来确定,如下:
    Dim lxn As String
    Static a As String
    a = InputBox("请输入查找姓名","查找")
    lxn = "NAME like '" & a & "'"
    .Find lxn

    LockType属性:设置记录集中的记录锁定方式,是否可修改及修改方式:有1-adLockReadOnly(只读);2-adLockPessimistic(保守式修改),当修改记录后立即将更改保存到数据源,3-adLockOptimistic(开放式修改),当修改记录后只有调用Update方法才将更改保存到数据源;4-adLockBatchOptimistic(开放式批处理修改)。当修改记录后只有调用UpdateBatch方法才将更改保存到数据源。对于ADO对象而言,该属性的缺省值为1-adLockReadOnly只读,要编辑记录则必须加以改变。
    Update方法:对记录集当前记录的更改进行保存到数据库。
    UpdateBatch方法:成批保存更改的多条记录。只有当记录集使用锁定方式为adLockBatchOptimistic打开时该方法才有效。使用该方法,可以加快更新速度。因为一条一条更新的话,速度慢,而多条一起更新的话,其实等同于一个更新操作,因此更快。该方法有个可选参数AffectRecords提一下,它可设为:adAffectCurrent只更新当前记录;adAffectGroup只更新当前Filter属性满足的记录;adAffectAll(缺省)全部更新,包括被当前Filter属性隐藏的记录。
    CancelUpdate方法:放弃保存对当前记录自上次Update后的更改,即不保存当前所作的修改。通常在WillChangeRecord事件中进行数据验证时用。当然一般是直接将事件提供的参数adStatus设为adStatusCancel即可取消保存。这里要注意,在WillChangeRecord事件中取消一个操作,将发生“操作已取消”的错误。照我的感觉,还不如直接在要Update的代码前面去验证输入的数据。
    在记录集中添加新记录,用addnew方法先在缓存中添加一个新的空记录,这时它自动成为当前记录,通过修改,然后用update方法保存,data1.recordset.update,说明:如果用Movenext等方法将记录指针移开时记录集会自动保存缓存中的记录(等于调用Update方法)。
    修改当前记录,只要直接给字段赋值就可以了,注意赋值后也要用Update方法将缓存中的数据保存,否则不会自动更新,除非用MoveNext等方法将指针移开让它自动调用。
    删除当前记录用Delete方法就行了。有一点要注意,删除后,记录指针仍在被删除的记录上,因此要用MoveNext等方法将指针移开,或干脆Requery刷新一下。
    Sort:指定用来对全部记录排序的参照字段。
    Fields:包含记录集中各字段的集合。指定某个字段格式为:fields("字段名")。可省略。如有:m$=data1.recordset.fields("姓名").value为读当前记录(用value表示)的“姓名”字段值。还可用来在代码中修改(写)记录值(不是用绑定控件),如修改记录值为“李新能”:data1.recordset.fields("姓名").value="李新能"。也可写为data1.recordset("姓名").value,括号内写明字段名或“字段索引值”,第1个字段索引值从0开始。如data1.recordset(0).value.
    关闭记录集用close方法,格式为“记录集.close”。
    要读或写当前记录的某个字段值,只要用“记录集("字段名")”就可以了,Fields和Value都是缺省属性,但当值是一个记录集的除外,如数据环境中Command命令对象的子命令对象。
    刷新记录集(即重新打开记录集):Requery方法。在记录集打开的情况下,迅速关闭又打开一次,以达到确保记录集始终处于激活状态。
    返回/设置记录集当前编辑状态:EditMode属性。有以下三个可能返回值:adEditNone没有编辑;adEditInProgress正在编辑(即当前记录已修改但未保存);adEditAdd已经用AddNew方法添加新记录但还未存盘,在缓存中的是新记录。这个属性通常用来检测某些操作状态,比如可在窗体的Unload事件中防止修改了的记录未保存就卸载。
    ★ AbsolutePage属性:指定当前记录所在的页。其值的范围在1—PageCount值之间,所谓页,是把Recordset对象按PageSize为标准分为若干页面,每一页(除最后一页)记录数相等(等于PageSize)。有三个特殊值:adPosUnkown未知位置;adPosBOF在文件头;adPosEOF在文件尾。
    ★ ActiveCommand:属性:只读属性。返回关联的Command对象,如果记录集不是由Command对象创建的,则返回Null.
    ★ ActiveConnection属性:设置/返回记录集基于哪个Connection对象,如果没有Connection对象,则直接指定一个连接字符串。
    ★ Cancel: 取消执行异步 Execute(对Connection和Command对象而言) 或 异步Open 方法调用(即通过 adAsyncConnect、adAsyncExecute 或 adAsyncFetch 参数选项调用这些方法)。
    ★ CacheSize属性:本地内存缓存的大小。
    ★ CancelBatch方法: 取消批更新模式下记录集中所有还未执行的更新。
    ★ Clone方法:复制一个记录集。格式:Set 记录集变量=记录集.Clone [adLockReadOnly]当指定可选参数adLockReadOnly表示创建只读的记录集副本。使用 Clone 方法可创建多个 Recordset 对象副本,这对于希望在给定的记录组中保留多个当前记录十分有用。使用 Clone 方法比使用与初始定义相同的定义创建和打开新 Recordset 对象要有效得多。新创建副本的当前记录将设置为首记录。无论游标类型如何,对某个 Recordset 对象所作的修改在其所有副本中都是可见的。不过一旦在原始 Recordset 上执行了 Requery,副本将不再与原始 Recordset 同步。关闭原始 Recordset 时并不关闭它的副本,而关闭某个副本也将不关闭原始 Recordset 或任何其他副本。用户只允许复制支持书签的 Recordset 对象。书签值是可交换的,也就是说,来自一个 Recordset 对象的书签引用可引用其任何副本中的相同记录。
    ★ CompareBookmarks: 比较两个书签并返回它们相差值的说明。即谁先谁后。
    ★ CursorLocation: 设置或返回游标服务的位置。游标:可以简单理解为指向若干行的指针。有三种设置值:adUseNone 没有使用游标服务。(该常量已过时并且只为了向后兼容才出现,通常不用)。adUseClient 使用由本地游标库提供的客户端游标,通常使用这种游标。adUseServer 使用数据提供者的或驱动程序提供的游标。
    该属性应在建立连接之前设置,更改 CursorLocation 属性不会影响现有的连接。
    远程数据服务用法 当用于客户端 (ADOR) Recordset 或 Connection 对象时,只能将 CursorLocation 属性设置为 adUseClient。
    ★ CursorType: 指示在 Recordset 对象中使用的游标类型。AdOpenForwardOnly 仅向前游标,默认值。除了只能在记录中向前滚动外,与静态游标相同。当只需要在记录集中单向移动时,使用它可提高性能。
    AdOpenKeyset 键集游标。尽管从您的记录集不能访问其他用户删除的记录,但除无法查看其他用户添加的记录外,键集游标与动态游标相似。仍然可以看见其他用户更改的数据。
    AdOpenDynamic 动态游标。可以看见其他用户所作的添加、更改和删除。允许在记录集中进行所有类型的移动,但不包括提供者不支持的书签操作。
    AdOpenStatic 静态游标。可以用来查找数据或生成报告的记录集合的静态副本。另外,对其他用户所作的添加、更改或删除不可见。
    说明:使用 CursorType 属性可指定打开 Recordset 对象时应该使用的游标类型。Recordset 关闭时 CursorType 属性为读/写,而 Recordset 打开时该属性为只读。
    如果将 CursorLocation 属性设置为 adUseClient 则只支持 adOpenStatic 的设置。
    ★ Filter属性:过滤器。对记录集进行筛选,返回记录集中满足条件的所有记录,该属性指定一个筛选字符串,为一个“字段-比较符号-值”的条件表达式,当该属性赋值后,记录集立即变成筛选后的方式,包括如 AbsolutePosition、AbsolutePage、RecordCount 和 PageCount等属性都将改变,“变”成了一个“新”记录子集,当前记录移动到记录子集的第一个记录。而当清除 Filter 属性后,记录集立即恢复,当前记录位置将移动到原Recordset 的第一个记录。
    关于“字段-比较符号-值”的说明:“字段” 必须为 Recordset 中的有效字段名。如果字段名包含空格,必须用方括号将字段名括起来。
    “比较符号”必须使用的操作符为:<、>、<=、>=、<>、= 或 LIKE。
    “值” 是用于与字段值(如 'Smith'、#8/24/95#、12.345 或 $50.00)进行比较的值。字符串使用单引号而日期使用井号 #(注:在SQL中不用#号),对于数字,可以使用小数点、货币符号和科学记数法。如果 “比较符号” 为 LIKE,“值” 则可使用通配符。ADO和SQL只允许使用下划线(_) 和百分号 (%) 通配符,而且必须为字符串的尾字符。DAO只允许使用问号(?)和星号(*)作通配符.“值” 不可为 Null。在 LIKE 子句中,可在样式的开头和结尾使用通配符(如 LastName Like '*mit*'),或者只在结尾使用通配符(如,LastName Like 'Smit*')
    Filter属性还有几个特殊值可供选择:AdFilterNone 删除当前筛选条件并恢复查看所有记录。同空字符串””。 AdFilterPendingRecords 允许只查看已更改且尚未发送到服务器的记录。只能应用于批更新模式。 AdFilterAffectedRecords 允许只查看上一次 Delete、Resync、UpdateBatch 或 CancelBatch 调用所影响的记录。 AdFilterFetchedRecords 允许查看当前缓冲区中的记录,即上一次从数据库中检索记录的调用结果。 AdFilterConflictingRecords 允许查看在上一次批更新中失败的记录。
    ★ GetRows方法: 将Recordset的多个记录值复制到数组中,应当先定义一个变体变量,然后将GetRows的返回值赋给它,这个变量就成了一个二维数组,其第一维下标标识原所在的列(字段),第二维下标标识原所在的行(记录),每一个交叉点就是一个值了,如:
    Dim VariData As Variant
    VariData = DataEnvironment1.rsCommand1.GetRows
    x = UBound(VariData, 1)
    y = UBound(VariData, 2)
    For m = 0 To x
    For n = 0 To y
    Print VariData(m, n); ‘用分号表示同一字段的数据打印在同一行。
    Next n
    Print
    Next m
    该方法格式:变体变量=记录集.GetRows([rows],[start],[fields])有三个可选参数,第一个参数Rows限制返回的记录数量,即要复制几行记录,它决定的是变体数组的第二维长度,缺省情况下,将读取记录集中的所有记录。第二个参数Start指定从哪个记录位置开始向数组复制记录,可以是一个记录书签字符串,或以下三个常数之一:adBookMarkCurrent(当前记录)adBookMarkFirst(首记录录)adBookMarkLast(尾记录);第三个参数Fields限制返回的记录字段,即要复制哪几列,它决定的是变体数组的第一维长度,缺省情况下,将读取记录集中的所有字段,该参数可设置为单个字段名字符串,或多个字段名字符串组成的数组。
    注意:使用该方法复制记录值时,记录指针将随之移动,每复制一行后,指针自动移动到下一行。
    ★ GetString: 将 Recordset 按字符串值的变体型 (BSTR) 返回。
    ★ MarshalOptions: 汇集选项。指示要被调度返回服务器的记录。可选设置值:AdMarshalAll 默认值。表明所有行将返回到服务器。 AdMarshalModifiedOnly 表明只有已修改的行返回到服务器。当使用客户端 (ADOR) Recordset 时,已在客户端被修改的记录将通过称作“调度”的技术写回中间层或 Web 服务器。
    ★ MaxRecords: 指示通过一次查询返回 Recordset 的记录的最大数目。使用 MaxRecords 属性可对从数据源返回的记录数加以限制。该属性的默认设置为零,表明提供者返回所有所需的记录。Recordset 关闭时,MaxRecords 属性为读/写,打开时为只读。
    ★ NextRecordset:清除当前Recordset对象,执行下一个命令返回新的Recordset对象。当一个命令语句是复合语句(即用分号隔开的多条命令)?时,用该方法依次执行下一条命令。格式:Set recordset2=recordset1.NextRecordset。例如:
    Dim rst As ADODB.Recordset
    Dim strCnn As String
    Dim strCmd As String
    strCnn = "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=C:/工商所收费系统/MyDatabase.mdb"
    strCmd = "SELECT * FROM unitrecord;SELECT * FROM invoice" ‘AccessSQL不支持。
    Set rst = New ADODB.Recordset
    rst.Open strCmd, strCnn, adOpenDynamic, adLockOptimistic, adCmdText
    Print rst("Name")
    Set rst = rst.NextRecordset
    Print rst("Name")
    rst.Close
    ★ Open:打开一个游标,即记录集。
    ★ PageCount:页面数。
    ★ PageSize:每页大小,缺省为10。
    ★ Properties:
    ★ Resync:
    ★ Save:
    ★ Seek方法:使用索引进行查询,比用Find方法速度更快,但只能用于以表形式打开的记录集,不能用于动态记录集或快照型记录集,不能在远程服务器表上使用Seek,因为远程数据源不能以表形式打开。而且这个表预先定义了索引字段,使用Seek方法前,要在代码中用Index属性指定当前要使用的索引,格式为:记录集对象.Index=索引名。索引名是在表的设计阶段定义好的。注意索引名不等于字段名,只不过是以某个字段为标准的。设置好要使用的索引后,使用Seek进行查找,格式:Recordset对象.Seek 值,这里的值参数指定按当前索引所属字段进行查找的值,若找到,则指针指到此记录,若没找到,则EOF为True.
    一般情况下,在ADO中都不用Seek进行定位,而是用SQL查询生成动态记录集。只是在DAO中有一些使用,如:
    Private Sub Command2_Click()
    Data1.Recordset.Index = "indexName"
    Data1.Recordset.Seek "=", "李春生"
    Text1.Text = Data1.Recordset(2)
    End Sub
    其格式有一点不同,它的第一参数指定一个比较符号,第二个参数才是值,需要在属性窗口中将DATA1的RecordsetType属性设置为0-Table。
    ★ Sort:
    ★ Source:数据源。
    ★ State:对象的当前状态,有adStateClosed(关闭)或adStateOpen(打开)。
    ★ Status:批量操作或海量操作的状态。
    ★ StayInSync:
    ★ Supports方法:判断本记录集是否具有某个方面的功能。如:是否允许增添记录If rst.Supports(adAddnew)=True then rst.Addnew,如果具有某项功能则返回True,不具备则返回False,该方法的一个参数是指定哪个方面,如adDelete是否允许删除记录,adBookmark是否支持书签设置,adUpdate是否允许更新(即修改)数据源,adIndex是否可以使用index属性设置索引,adSeek是否可用Seek方法定位记录指针。再如判断是否支持索引:MsgBox DataEnvironment1.rsCommand1.Supports(adIndex)。
    记录集有五种不同的类型:
    Table:表示数据库中一张表,记录集与数据库中的数据同步,可通过记录集对数据库添加,删除等操作。
    Dynaset:一张查询结果集,可由多个表中不同数据组成,可通过记录集对数据库进行添加、删除等操作。
    Dynamic:与dynaset相似,但它有这样的功能:当其他用户修改记录集的基表(数据库表)时,会将修改反映到这个记录集中,主要用于多用户操作。
    SnapShot:一张只读的查询结果集,可包含不同表中数据记录,不能对记录添加,修改等,可用于浏览数据库。
    Forward-Only:一个没游标的SnapShot记录集,只能从头到尾顺序经过所有记录,不能任意移动。

    展开全文
  • 打开visual studio 2019,新建窗体,窗体上添加一些按钮和个数据源控件(datagridview)。 先定义一下SQL相关的变量: Dim sqlconn As SqlClient.SqlConnection Dim scd As SqlClient.SqlCommand Dim sda As ...
  • 在VB中如何对所连接的数据库进行添加、更新和删除数据操作呢??? 插入新数据: INSERT INTO 语句,所需做的是声明想向哪个表插入数据、向哪列中插入数据,以及插入什么数据,基本语法如下: INSERT INTO ...
  • VB.Net - 数据库访问

    千次阅读 2018-03-01 09:35:53
    VB.Net - 数据库访问应用程序与数据库通信,首先,检索存储那里的数据,并以用户友好的方式呈现它,其次,通过插入,修改和删除数据来更新数据库。Microsoft ActiveX Data Objects.Net(ADO.Net)是个模型,.Net...
  • !... ``` --从T1数据库的title_info表复制记录到T2的sn_info表。 Insert Into sn_info(author_e,bstutorsname,...请问,SQLite中如何实现从数据库的某个表的记录复制到另数据库的某个表中呢? 感谢指教!
  • 总结 vb数据库的连接方法

    万次阅读 多人点赞 2012-06-01 10:18:00
    总结:vb数据库连接方式,两种分法。根据是否使用ODBC(驱动程序)来分: 1.有源连接   2.无源连接。...其中有源连接指的是:通过设置数据源(ODBC)来连接 ...上图中每一行都是oledb 作为驱动程序,当
  • WINCC用VB读写数据库以及EXCEL导出

    千次阅读 多人点赞 2020-03-16 23:24:07
    本文主要是介绍WINCC7.4 用VB来读写SQL server数据库,网上有不少这类例子,实现功能的方法也很多,但是能完整介绍并且贴出所有编码的还是比较少,今天的这个例子,我会先把所有的内容先截图展示,然后再提供整个...
  • VB.NET数据库编程基础教程

    千次阅读 2013-07-21 13:20:53
    众所周知,VB.NET自身并不具备对数据库进行操作的功能,它对数据库的处理是通过.NET FrameWork SDK中面向数据库编程的类库和微软的MDAC来实现的。其中,ADO.NET又是.NET FrameWork SDK中重要的组成部分。要了解VB...
  • DataAdapter与数据源提供程序相关,操作ACCESS数据库数据提供程序为OleDb.net,命名空间为System.Data.OleDb,相应的DataAdapter对象System.Data.OleDb空间里对应的是OleDbDataAdapter对象。 而DataTable对象和...
  • VB中基于ADO的数据库访问

    万次阅读 多人点赞 2012-07-25 17:50:22
    在VB中常用的数据库访问接口有三种,即DAO、RDO、ADO三种对象模式。三种模式的具体解释见上篇文章: DAO/RDO/ADO,ODBC,OLEDB之间的关系 本篇文章我们重点介绍一下ADO的应用。 :ADO的简介 ADO(ActiveX ...
  • C#基础教程-c#实例教程,适合初学者

    万次阅读 多人点赞 2016-08-22 11:13:24
    章 C#语言基础 本章介绍C#语言的基础知识,希望具有C语言的读者能够基本掌握C#语言,并以此为基础,能够进一步学习用C#语言编写window应用程序和Web应用程序。当然仅靠章的内容就完全掌握C#语言是不可能的,...
  • 如何用VB建立数据库

    千次阅读 2007-06-17 23:31:00
    最佳答案Visual Basic作为应用程序的开发“利器”也表现在数据库应用程序的开发上,它良好的界面和强大的控件功能使数据库编程变得简单多了。但即便如此,数据库应用程序的开发仍然算得上是VB编程中的难点,这是因为...
  • 初识vb数据库开发之实例5(数据查询)

    万次阅读 热门讨论 2012-07-24 20:31:17
    设计分析    一般是先数据库查询有三种方法  方法:使用查询参数构造SQL Select语句,然后使用ADO Command 对象或   RecordSet 执行查询语句 方法二:使用ADOCom
  • VB.Net数据库编程

    千次阅读 2014-12-03 19:33:56
    众所周知,VB.NET自身并不具备对数据库进行操作的功能,它对数据库的处理是通过.NET FrameWork SDK中面向数据库编程的类库和微软的MDAC来实现的。其中,ADO.NET又是.NET FrameWork SDK中重要的组成部分。要了解VB...
  • 数据库课程设计-KTV点歌系统(VB.net 窗体,MySQL5.5)

    千次阅读 多人点赞 2021-01-13 17:41:30
    分享一下学期做的数据库课程设计,记录和交流~ 附代码资源: 数据库课程设计-KTV点歌系统(VB.net 窗体,MySQL5.5) A 目录 *引言* 《数据库系统课程设计》是计算机学院的实践课程。较为系统地学完《数据库系统...
  • 编程语言与数据库的连接是通过个接口,达到两者交流,以便两者谈情说爱。 、接口种类:6种:  1、ODBC,面向C/C++。  2、DAO, 面向VB,操作ACCEss  3、RDO,上面的加强型  4、OLE DB  5、ADO, 对...
  • 这是同样系列的第二篇,上:...这章将会讲述如何Access中建立数据库。我将同时讲述Access2003和2013两种版本的操作方法。当然,创建数据库的操作自然也包括了创建表,增加字段这些操作
  • Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)、数据录入通过VB向SQL Server数据库中录入数据,可以使用数据绑定控件录入数据与使用SQL语句录入1.利用数据绑定控件录入数据使用数据...
  • 向MSHFlexGrid控件中动态添加数据库数据

    千次阅读 热门讨论 2014-03-15 19:41:18
     这几天一直纠结着vb中的控件MSHFlexGrid。它是用来显示和操作表格数据的,其中对包含了字符串以及图片的表格提供了灵活的排序、插入数据和格式编排的功能。由于之前没有接触过这个控件,对它的属性和方法...
  • VB操作access数据库

    千次阅读 2014-04-16 16:13:39
    次用VB来连接数据库,由于不了解VB语法,费了
  • 安装SQL Server的时候按照网上的步骤,我觉得这个需要学完整个数据库再返回头去看,或许就能明白,为什么要那样设置了。 2.***** 游标 最初听到游标这个东西,想到游标卡尺。这里的游标是查询返回的个结果...
  • vb数据库编程(二)--数据控件

    千次阅读 2011-04-05 16:02:00
    转自SOHU博客VB菜鸟学堂
  • VB】删除MSHFlexGrid控件中一行(机房问题)

    千次阅读 热门讨论 2015-06-17 10:48:26
    一、删除MSHFlexGrid控件中的一行。二、信息分行显示。三、MDI主窗体的费用计算。
  • VB.NET数据库技术问题的十问十答
  • VB6.0数据库开发之实例5总结

    千次阅读 多人点赞 2012-08-20 09:01:59
    数据查询是一般的数据库管理系统的基本功能之,用于从数据检索符合条件的数据。 先来上张图: 、原理分析  本例使用ADO Command对象创建参数查询,并用MSFlexGrid显示查询结果。因为Command对象...
  • x = OSGetPrivateProfileString(Fname$,szItem$ , szDefault$,Tmp,Len(Tmp) ," MyDB.INI " ) GetINIString = Mid$( Tmp,1,x ) EndFunction以下这些函数的声明可写模块文件内,且每个函数的声明必须在一行内...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,417
精华内容 3,766
关键字:

vb在数据库最后一行添加记录