当前位置:文档之家› vbnet数据库操作

vbnet数据库操作

vbnet数据库操作参考一下下面这段代码就可以了。

Imports System.Data'引入数据库操作类命名空间Imports System.Data.OleDb'引入操作命名空间Public Class FrmModifystInfoInherits System.Windows.Forms.FormPublic ADOcmd As OleDbDataAdapterPublic ds As DataSet = New DataSet()'建立DataSet对象Public mytable As Data.DataTable'建立表单对象Public myrow As Data.DataRow'建立数据行对象Public rownumber As Integer'定义一个整型变量来存放当前行数Public SearchSQL As StringPublic cmd As OleDbCommandBuilder'======================================================#Region " Windows 窗体设计器生成的代码 "#End Region'======================================================Private Sub FrmModifystInfo_Load(ByVal sender As Ob ject, ByVal e As System.EventArgs) Handles MyBase.Load'窗体的载入TxtSID.Enabled = FalseTxtName.Enabled = FalseComboSex.Enabled = FalseTxtBornDate.Enabled = FalseTxtClassno.Enabled = FalseTxtRuDate.Enabled = FalseTxtTel.Enabled = FalseTxtAddress.Enabled = FalseTxtComment.Enabled = False '设置信息为只读 Dim tablename As String = "student_Info " SearchSQL = "select * from student_Info " ExecuteSQL(SearchSQL, tablename) '打开数据库 ShowData() '显示记录End SubPrivate Sub ShowData()'在窗口中的textbox中显示数据myrow = mytable.Rows.Item(rownumber)TxtSID.Text = myrow.Item(0).ToStringTxtName.Text = myrow.Item(1).ToStringComboSex.Text = myrow.Item(2).ToStringTxtBornDate.Text = Format(myrow.Item(3), "yyyy-MM-dd ")TxtClassno.Text = myrow.Item(4).ToStringTxtTel.Text = myrow.Item(5).ToStringTxtRuDate.Text = Format(CDate(myrow.Item(6)), " yyyy-MM-dd ")TxtAddress.Text = myrow.Item(7).ToStringTxtComment.Text = myrow.Item(8).ToStringEnd SubPrivate Sub BtFirst_Click(ByVal sender As System.Ob ject, ByVal e As System.EventArgs) Handles BtFirst.Click '指向第一条数据rownumber = 0ShowData()End SubPrivate Sub BtPrev_Click(ByVal sender As System.Obj ect, ByVal e As System.EventArgs) Handles BtPrev.Click '指向上一条数据BtNext.Enabled = Truerownumber = rownumber - 1If rownumber < 0 Thenrownumber = 0 '如果到达记录的首部,行号设为零BtPrev.Enabled = FalseEnd IfShowData()End SubPrivate Sub BtNext_Click(ByVal sender As System.Obj ect, ByVal e As System.EventArgs) Handles BtNext.Click '指向上一条数据BtPrev.Enabled = Truerownumber = rownumber + 1If rownumber > mytable.Rows.Count - 1 The nrownumber = mytable.Rows.Count - 1 '判断是否到达最后一条数据BtNext.Enabled = FalseEnd IfShowData()End SubPrivate Sub BtLast_Click(ByVal sender As System.Obj ect, ByVal e As System.EventArgs) Handles BtLast.Click '指向最后一条数据rownumber = mytable.Rows.Count - 1ShowData()End SubPrivate Sub BtDelete_Click(ByVal sender As System.O bject, ByVal e As System.EventArgs) Handles BtDelete.Clic kmytable.Rows.Item(rownumber).Delete() '删除记录 If MsgBox( "确定要删除改记录吗? ", MsgBoxStyle.O KCancel + vbExclamation, "警告 ") = MsgBoxResult.OK Then cmd = New OleDbCommandBuilder(ADOcmd) '使用自动生成的SQL语句ADOcmd.Update(ds, "student_Info ")BtNext.PerformClick()End IfEnd SubPrivate Sub BtModify_Click(ByVal sender As System.O bject, ByVal e As System.EventArgs) Handles BtModify.Clic kTxtSID.Enabled = False '关键字段只读TxtName.Enabled = True '可读写ComboSex.Enabled = TrueTxtBornDate.Enabled = TrueTxtClassno.Enabled = TrueTxtRuDate.Enabled = TrueTxtTel.Enabled = TrueTxtAddress.Enabled = TrueTxtComment.Enabled = TrueEnd SubPrivate Sub BtUpdate_Click(ByVal sender As System.O bject, ByVal e As System.EventArgs) Handles BtUpdate.Clic kIf Not Testtxt(TxtName.Text) ThenMsgBox( "请输入姓名! ", vbOKOnly + vbE xclamation, "警告 ")TxtName.Focus()Exit SubEnd IfIf Not Testtxt(ComboSex.Text) ThenMsgBox( "请选择性别! ", vbOKOnly + vbE xclamation, "警告 ")ComboSex.Focus()Exit SubEnd IfIf Not Testtxt(TxtClassno.Text) ThenMsgBox( "请选择班号! ", vbOKOnly + vbE xclamation, "警告 ")TxtClassno.Focus()Exit SubEnd IfIf Not Testtxt(TxtTel.Text) ThenMsgBox( "请输入联系电话! ", vbOKOnly + vbExclamation, "警告 ")TxtTel.Focus()Exit SubEnd IfIf Not Testtxt(TxtAddress.Text) ThenMsgBox( "请输入家庭住址! ", vbOKOnly + vbExclamation, "警告 ")TxtAddress.Focus()Exit SubEnd IfIf Not IsNumeric(Trim(TxtSID.Text)) ThenMsgBox( "请输入数字学号! ", vbOKOnly + vbExclamation, "警告 ")Exit SubTxtSID.Focus()End IfIf Not IsDate(TxtBornDate.Text) ThenMsgBox( "出生时间应输入日期格式(yyyy-mm-dd)! ", vbOKOnly + vbExclamation, "警告 ")Exit SubTxtBornDate.Focus()End IfIf Not IsDate(TxtRuDate.Text) ThenMsgBox( "入校时间应输入日期格式(yyyy-mm-dd)! ", vbOKOnly + vbExclamation, "警告 ")TxtRuDate.Focus()Exit SubEnd Ifmyrow.Item(0) = Trim(TxtSID.Text)myrow.Item(1) = Trim(TxtName.Text)myrow.Item(2) = Trim(ComboSex.Text)myrow.Item(3) = Trim(TxtBornDate.Text)myrow.Item(4) = Trim(TxtClassno.Text)myrow.Item(5) = Trim(TxtTel.Text)myrow.Item(6) = Trim(TxtRuDate.Text)myrow.Item(7) = Trim(TxtAddress.Text)myrow.Item(8) = Trim(TxtComment.Text)mytable.GetChanges()cmd = New OleDbCommandBuilder(ADOcmd)'使用自动生成的SQL语句ADOcmd.Update(ds, "student_Info ")'对数据库进行更新MsgBox( "修改学籍信息成功! ", vbOKOnly + vbExc lamation, "警告 ")TxtName.Enabled = FalseComboSex.Enabled = FalseTxtBornDate.Enabled = FalseTxtClassno.Enabled = FalseTxtRuDate.Enabled = FalseTxtTel.Enabled = FalseTxtAddress.Enabled = FalseTxtComment.Enabled = False '重新设置信息为只读 End SubPrivate Sub BtCancel_Click(ByVal sender As System.O bject, ByVal e As System.EventArgs) Handles BtCancel.Clic kTxtSID.Enabled = FalseTxtName.Enabled = FalseComboSex.Enabled = FalseTxtBornDate.Enabled = FalseTxtClassno.Enabled = FalseTxtRuDate.Enabled = FalseTxtTel.Enabled = FalseTxtAddress.Enabled = FalseTxtComment.Enabled = FalseEnd SubPublic Function ExecuteSQL(ByVal SQL As String, B yVal table As String)Try'建立ADODataSetCommand对象'数据库查询函数ADOcmd = New OleDbDataAdapter(SQL, "P rovider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\student.mdb ")'建立ADODataSetCommand对象ADOcmd.Fill(ds, table) '取得表单mytable = ds.Tables.Item(0) '取得名为t able的表rownumber = 0 '设置为第一行myrow = mytable.Rows.Item(rownumber)'取得第一行数据CatchMsgBox(Err.Description)End TryEnd FunctionEnd Class。

相关主题