VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > VB.net教程 >
  • VB.NET数据库编程基础教程(转载)(3)

myConn.ConnectionString = ConnectionString
Dim strCom As String = ″ SELECT * FROM student ″
'创建一个 DataSet
myDataSet = New DataSet()
myConn.Open()
'用 OleDbDataAdapter 得到一个数据集
Dim myCommand As OleDbDataAdapter = New OleDbDataAdapter(strCom, myConn)
'把Dataset绑定student数据表
myCommand.Fill(myDataSet, ″student″)
'关闭此OleDbConnection
myConn.Close()
End Sub
'绑定数据到TextBox控件
Private Sub frmtest_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
txtStuID.DataBindings.Add(New Binding(″Text″, Me.myDataSet, ″student.StuID″))
txtStuName.DataBindings.Add(New Binding(″Text″, Me.myDataSet, ″student.StuName″))
txtStuSex.DataBindings.Add(New Binding(″Text″, Me.myDataSet, ″student.StuSex″))
txtStuBorn.DataBindings.Add(New Binding(″Text″, Me.myDataSet, ″student.StuBorn″))
txtStuCore.DataBindings.Add(New Binding(″Text″, Me.myDataSet, ″student.StuCore″))
End Sub
完成以上步骤后,我们就可以通过编程对数据库进行各作操作了。
1.实现对数据记录的浏览
在完成对窗体中的WinForm组件进行绑定后,实现对数据记录的浏览操作的关键就是要找到如何定位数据记录指针的方法。而要实现这种处理就需要用到.NET FrameWork SDK中的名称空间System.Windows.Froms中的BindingManagerBase类。
BindingManagerBase是一个抽象的类,主要用于管理同一数据表所有绑定对象。BindingManagerBase类中定义了二个属性“position”和“Count”,第一个属性是定义当前数据指针,而第二个属性主要是得到当前数据集有多少记录数目。在已经进行完数据绑定后,通过这两个属性配合使用,实现对数据记录的浏览。
(1)向上翻阅一条记录:
双击“上一条”按钮,在代码窗中输入以下代码:
Private Sub btnPrevious_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrevious_.Click
Me.BindingContext(myDataSet, ″student″).Position -= 1
End Sub
(2)向下翻阅一条记录:
双击“下一条”按钮在代码窗中输入以下代码:
Private Sub btnNext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesbtnNext.Click
Me.BindingContext(myDataSet, ″student″).Position += 1
End Sub
(3)翻到最后一条记录:
双击“最后一条记录”按钮,在代码窗中输入以下代码:
Private Sub btnEnd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEnd.Click
Me.BindingContext(myDataSet, ″student″).Position = Me.BindingContext(myDataSet, ″student″).Count - 1
End Sub
(4)翻阅到第一条记录:
双击“第一条记录”按钮,在代码窗中输入以下代码:
Private Sub btnFirst_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFirst.Click
Me.BindingContext(myDataSet, ″student″).Position = 0
End Sub
说明:为了代码书写方便,我们可以先定义一个BindingManagerBase对象myBind,如myBind = Me.BindingContext (myDataSet, ″student″ ),于是以上各句代码均可以简写成:
向上翻阅一条记录:myBind.Position = myBind.Position - 1
向下翻阅一条记录:myBind.Position = myBind.Position + 1
翻阅到最后一条记录:myBind.Position=myBind.count - 1
翻阅到第一条记录:myBind.Position = 0
2.删除数据记录
双击“删除记录”按钮,在代码窗中输入以下代码:
Private Sub btnDel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDel.Click
Dim ConnectionString As String = ″ Provider = Microsoft.Jet.OLEDB.4.0; Data Source = e:\My Documents\db1.mdb″
Dim myConn As OleDbConnection = New OleDbConnection()
myConn.ConnectionString = ConnectionString
myConn.Open()
 Dim strDele As String = ″DELETE From student WHERE StuID = '″ + txtStuID.Text + ″ '″
 Dim myCommand As OleDbCommand = New OleDbCommand(strDele, myConn)
myCommand.ExecuteNonQuery() myDataSet.Tables(″student″).Rows(Me.BindingContext(myDataSet, ″student″).Position).Delete()
myDataSet.Tables(″student″).AcceptChanges()
10.myConn.Close()
End Sub
前面四行代码我们已经非常熟悉,目的是建立与数据据的连接并打开数据库。第6行代码我们建立一个SQL查询,用来查询数据表中StuID字段值等于TxtStuID.Text输入值的所有记录。并在第7行代码中将查询结果建立一个新的OleDbCommand对象,用来指定要删除的记录。第8行代码是从数据库中删除指定的记录,第9行代码是从myDataSet中删除记录。前者是物理上删除记录,如果去掉第8行代码运行程序你就会发现,记录只是在当前操作中被删除了,在数据库中依然存在。
其中第6行代码中定义的SQL查询条件读者可以根据需要自行指定。需要说明的是,由于我们在创建数据表时,指定StuID字段的类型为Text类型,因此在书写SQL语名时要在“=”号前加上单引号,具体格式请参照第6行代码。如果StuID字段类型为数字型,那么第6行正确写法应该为:
Dim strDele As String = ″DELETE From student WHERE StuID = ″ + txtStuID.Text
3.修改数据记录
修改数据的方法有很多,本文中我们将以采用SQL语言来修改数据记录为例详细介绍一下如何修改数据记录。下面我们先看看程序代码:
Dim ConnectionString As String = ″ Provider = Microsoft.Jet.OLEDB.4.0; Data Source = e:\My Documents\db1.mdb″
Dim myConn As OleDbConnection = New OleDbConnection()
myConn.ConnectionString = ConnectionString
myConn.Open()
    '以上代码用来连接数据源
myDataSet.Tables(″student″).Rows(Me.BindingContext(myDataSet, ″student″).Position).BeginEdit()
'利用SQL语句创建数据更新集合
    Dim StrUpdate As String = ″Update student SET StuName='″ + txtStuName.Text + ″',StuSex='″ + txtStuSex.Text + ″',StuBorn='″ + txtStuBorn.Text + ″',StuCore='″ + txtStuCore.Text + ″' WHERE StuID='″ + txtStuID.Text + ″'″
    '利用SQL结果创建新的OleDbCommand对象
Dim myCommand As OleDbCommand = New OleDbCommand(StrUpdate, myConn)
myCommand.ExecuteNonQuery()
myDataSet.Tables(″student″).Rows(Me.BindingContext(myDataSet, ″student″).Position).EndEdit()
myDataSet.Tables(″student″).AcceptChanges()
myConn.Close()
MsgBox(″数据修改完成!″)
上述代码中我们采用SQL语言中的Update语名来更新记录,对各个TextBox中的值修改后更新到数据库。其中重要语句就是SQL语句的编写。如果你有不明白的地方,请参阅SQL相关资料。代码中我们同时还利用了BeginEdit()与EndEdit()方法,任何从数据的修改都必须在这两个方法之间进行。前者是数据修改的入口,后者则是完成将数据写入数据库的工作。
4.增加数据记录
增加数据记录与修改数据在实现方法上有很多相同之处。在下面的实例中我们利用SQL的Insert语句在指定位置插入一条记录,把更新到数据库。如果你想在数据表最后增加一条记录,只需要将数据记录指针指向数据表末尾就行了。
Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click
Dim ConnectionString As String = ″ Provider = Microsoft.Jet.OLEDB.4.0; Data Source = e:\My Documents\db1.mdb″
Dim myConn As OleDbConnection = New OleDbConnection()
myConn.ConnectionString = ConnectionString
myConn.Open()
Dim StrAdd As String = ″insert into student (Stuid,StuName,StuSex,StuBorn,StuCore) values('″ + txtStuID.Text + ″','″ + txtStuName.Text + ″','″ + txtStuSex.Text + ″','″ + txtStuBorn.Text + ″','″ + txtStuCore.Text + ″')″
Debug.Write(StrAdd)
Dim myCommand As OleDbCommand = New OleDbCommand(StrAdd, myConn)
myCommand.ExecuteNonQuery()
myConn.Close()
myDataSet.Tables(″student″).Rows(Me.BindingContext(myDataSet, ″student″).Position).BeginEdit()
myDataSet.Tables(″student″).Rows(Me.BindingContext(myDataSet, ″student″).Position).EndEdit()
myDataSet.Tables(″student″).AcceptChanges()
MsgBox(″数据增加完成!″)
  End Sub
有了前面几种基本操作方法的代码分析后,这段代码相信不难理解。大家需要关注的还是SQL语句是如何实现数据记录增加的。这种方法具有一定的通行性。
完成上述设计后我们来看看整个程序的运行结果。按下F5键运行程序即可。
本文中所有代码均在Windows XP+VB.NET环境下调试通过。

相关教程
关于我们--广告服务--免责声明--本站帮助-友情链接--版权声明--联系我们       黑ICP备07002182号