VB.NET访问ACCESS数据库的增加,修改,删除等部分过程

本文介绍了一个使用VB.NET进行数据检索、增加、删除和修改操作的应用案例。通过具体的代码示例展示了如何利用DataSet、OleDbConnection及OleDbDataAdapter等组件与数据库交互,并实现了数据的动态展示。
 
  1. '用到数据控件DataSet,OleDbConnection,OleDbDataAdapter
  2. '组合搜索
  3. Private Sub btnOk_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles BtnOK.Click
  4.             Dim str As String
  5.             Dim type1 As String
  6.             str = "select * from telecode where 1=1 "
  7.             If Me.txName.Text <> "" Then
  8.                 str = str & " and name like '%" & Me.txName.Text & "%'"
  9.             End If
  10.             If Me.txDept.Text <> "" Then
  11.                 str = str & " and dept like '%" & Me.txDept.Text & "%'"
  12.             End If
  13.             If Me.txAddr.Text <> "" Then
  14.                 str = str & " and address like '%" & Me.txAddr.Text & "%'"
  15.             End If
  16.             If Me.txTele.Text <> "" Then
  17.                 str = str & " and (telephone like '%" & Me.txTele.Text & "%' or mobile like '%" & Me.txTele.Text & "%')"
  18.             End If
  19.             If Me.cbxType.SelectedItem <> "" Then
  20.                 type1 = Me.cbxType.SelectedIndex + 1
  21.                 str = str & " and type = '" & type1 & "'"
  22.             End If
  23.             OleDbConnection1.Open()
  24.             Console.Write(str)
  25.             OleDbDataAdapter1.SelectCommand.CommandText = str
  26.             OleDbDataAdapter1.SelectCommand.ExecuteNonQuery()
  27.             DataSet1.Clear()
  28.             OleDbDataAdapter1.Fill(DataSet1)
  29.             OleDbConnection1.Close()
  30.             ' DataView1.Table = DataSet1.Tables(0)
  31.             '         showpostion()
  32.             'ComboBox1.DataSource = objds.Tables(0)
  33.             'ComboBox1.DisplayMember = objds.Tables(0).Columns(1).ToString
  34.             'Label1.Text = objds.Tables(0).Columns(1).ColumnName
  35.             Dim ds As DataSet
  36.             ds = DataSet1
  37.             If Not ds Is Nothing Then
  38.                 Me.DataGrid1.PreferredColumnWidth = Me.DataGrid1.Width / ds.Tables(0).Columns.Count
  39.                 Me.DataGrid1.DataSource = ds.Tables(0)
  40.             Else
  41.                 MsgBox("没有符合要求的记录!", MsgBoxStyle.OKOnly, "提示")
  42.                 Me.DataGrid1.DataSource = Nothing
  43.             End If
  44.             '            LabAcc.Text = ds.Tables(0).Columns.Count
  45.         End Sub
  46. '增加记录
  47.         Private Sub BtAdd_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles BtAdd.Click
  48.             If txName.Text = "" Or (txTele.Text = "" And txMobile.Text = ""Then
  49.                 MsgBox("请填充完成数据", MsgBoxStyle.Information, "提示")
  50.                 txTele.Focus()
  51.                 Exit Sub
  52.             Else
  53.                 Dim sex1 As Integer
  54.                 Dim str, type1 As String
  55.                 If RadioBt1.Checked Then
  56.                     sex1 = 0
  57.                 Else
  58.                     sex1 = -1
  59.                 End If
  60.                 If Me.cbxType.SelectedItem <> "" Then
  61.                     type1 = Me.cbxType.SelectedIndex + 1
  62.                 End If
  63.                 Str = "insert into telecode ( id,name,sex,dept,address,telephone,mobile,tnote,type ) values ( " & _
  64.                          txId.Text & ", '" & txName.Text & "', " & sex1 & ", '" & _
  65.                          txDept.Text & "', '" & txAddr.Text & "', '" & txTele.Text & "', '" & _
  66.                          txMobile.Text & "', '" & txNote.Text & "', '" & type1 & "' )"
  67.                 OleDbConnection1.Open()
  68.                 Console.Write(Str)
  69.                 OleDbDataAdapter1.InsertCommand.CommandText = str
  70.                 OleDbDataAdapter1.InsertCommand.ExecuteNonQuery()
  71.                 DataSet1.Clear()
  72.                 OleDbDataAdapter1.Fill(DataSet1)
  73.                 OleDbConnection1.Close()
  74.                 MsgBox("添加成功")
  75.                 Dim ds As DataSet
  76.                 ds = DataSet1
  77.                 If Not ds Is Nothing Then
  78.                     Me.DataGrid1.PreferredColumnWidth = Me.DataGrid1.Width / ds.Tables(0).Columns.Count
  79.                     Me.DataGrid1.DataSource = ds.Tables(0)
  80.                 Else
  81.                     MsgBox("没有符合要求的记录!", MsgBoxStyle.OKOnly, "提示")
  82.                     Me.DataGrid1.DataSource = Nothing
  83.                 End If
  84.             End If
  85.         End Sub
  86. '增加记录另一过程
  87.         Private Sub BtADD1_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles BtADD1.Click
  88.             'Close()
  89.             If txName.Text = "" Or (txTele.Text = "" And txMobile.Text = ""Then
  90.                 MsgBox("请填充完成数据", MsgBoxStyle.Information, "提示")
  91.                 txTele.Focus()
  92.                 Exit Sub
  93.             Else
  94.                 Dim str As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=e:/lytelephone/iteleDB.mdb"
  95.                 Dim conn As OleDbConnection
  96.                 conn = New OleDbConnection(str)
  97.                 conn.Open()
  98.                 Dim strsql As String
  99.                 strsql = "select * from telecode where name='" & Trim$(txName.Text) & "'"
  100.                 Dim cmd As New OleDbCommand(strsql, conn)
  101.                 Dim dr As OleDbDataReader
  102.                 dr = cmd.ExecuteReader
  103.                 If (dr.Read) Then
  104.                     MsgBox("已经有相同的名字,请修改")
  105.                     txTele.Focus()
  106.                     Exit Sub
  107.                 Else
  108.                     dr.Close()
  109.                     Dim strInsert As String
  110.                     Dim sex1 As Integer
  111.                     Dim type1 As String
  112.                     If RadioBt1.Checked Then
  113.                         sex1 = 0
  114.                     Else
  115.                         sex1 = -1
  116.                     End If
  117.                     If Me.cbxType.SelectedItem <> "" Then
  118.                         type1 = Me.cbxType.SelectedIndex + 1
  119.                     End If
  120.                     strInsert = "insert into telecode ( id,name,sex,dept,address,telephone,mobile,tnote,type ) values ( " & _
  121.                              txId.Text & ", '" & txName.Text & "', " & sex1 & ", '" & _
  122.                              txDept.Text & "', '" & txAddr.Text & "', '" & txTele.Text & "', '" & _
  123.                              txMobile.Text & "', '" & txNote.Text & "', '" & type1 & "' )"
  124.                     Dim cmdInsert As OleDbCommand = New OleDbCommand(strInsert, conn)
  125.                     cmdInsert.ExecuteNonQuery()                 '这里有问题
  126.                     MsgBox("添加成功")
  127.                     strsql = "select * from telecode"
  128.                     Dim cmdView As New OleDbCommand(strsql, conn)
  129.                     cmdView.ExecuteNonQuery()
  130.                     Dim da As New OleDbDataAdapter
  131.                     da = New OleDbDataAdapter(strsql, conn)
  132.                     Dim ds As New DataSet
  133.                     da.Fill(ds)
  134.                     DataGrid1.DataSource = ds.Tables(0)
  135.                 End If
  136.             End If
  137.         End Sub
  138.         Private Sub BtDel_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles BtDel.Click
  139.             Dim str As String
  140.             Dim type1 As String
  141.             str = "1=1"
  142.             If Me.txName.Text <> "" Then
  143.                 str = str & " and name = '" & Me.txName.Text & "'"
  144.             End If
  145.             If Me.txDept.Text <> "" Then
  146.                 str = str & " and dept = '" & Me.txDept.Text & "'"
  147.             End If
  148.             If Me.txAddr.Text <> "" Then
  149.                 str = str & " and address = '" & Me.txAddr.Text & "'"
  150.             End If
  151.             If Me.txTele.Text <> "" Then
  152.                 str = str & " and (telephone = '" & Me.txTele.Text & "' or mobile = '" & Me.txTele.Text & "')"
  153.             End If
  154.             If Me.cbxType.SelectedItem <> "" Then
  155.                 type1 = Me.cbxType.SelectedIndex + 1
  156.                 str = str & " and type = '" & type1 & "'"
  157.             End If
  158.             If str = "1=1" Then
  159.                 Exit Sub
  160.             End If
  161.             str = "delete * from telecode where " & str
  162.             OleDbConnection1.Open()
  163.             Console.Write(str)
  164.             OleDbDataAdapter1.DeleteCommand.CommandText = str
  165.             OleDbDataAdapter1.DeleteCommand.ExecuteNonQuery()
  166.             DataSet1.Clear()
  167.             OleDbDataAdapter1.Fill(DataSet1)
  168.             OleDbConnection1.Close()
  169.         End Sub
  170. '修改
  171.         Private Sub BtModi_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles BtModi.Click
  172.             If txName.Text = "" Or txTele.Text = "" Then
  173.                 MsgBox("请填充完成数据", MsgBoxStyle.Information, "提示")
  174.                 txName.Focus()
  175.                 Exit Sub
  176.             Else
  177.                 Dim str As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=e:/lytelephone/iteleDB.mdb"
  178.                 Dim conn As OleDbConnection
  179.                 conn = New OleDbConnection(str)
  180.                 conn.Open()
  181.                 Dim strsql As String
  182.                 strsql = "select * from telecode where name='" & Trim$(txName.Text) & "'"
  183.                 Dim cmd As New OleDbCommand(strsql, conn)
  184.                 Dim dr As OleDbDataReader
  185.                 dr = cmd.ExecuteReader
  186.                 If (dr.Read) Then
  187.                     Dim r As MsgBoxResult
  188.                     r = MsgBox("确定要修改此数据吗?", MsgBoxStyle.YesNo, "提示")
  189.                     Select Case r
  190.                         Case vbYes
  191.                             dr.Close()
  192.                             Dim strUpdate As String
  193.                             Dim sex1 As Integer
  194.                             Dim type1 As String
  195.                             If RadioBt1.Checked Then
  196.                                 sex1 = 0 '注意access中boolean属性字段0(false) ||-1(True),不然使用sql语句会出错
  197.                             Else
  198.                                 sex1 = -1
  199.                             End If
  200.                             If Me.cbxType.SelectedItem <> "" Then
  201.                                 type1 = Me.cbxType.SelectedIndex + 1
  202.                             End If
  203.                             strUpdate = "update telecode set telephone='" + Trim$(Me.txTele.Text) + "'" & _
  204.                                ", mobile = '" + Trim$(Me.txMobile.Text) + "'" & _
  205.                                ", address = '" + Trim$(Me.txAddr.Text) + "'" & _
  206.                                ", tnote = '" + Trim$(Me.txNote.Text) + "'" & _
  207.                                ", type = '" + type1 + "'" & _
  208.                                " where name='" + Trim$(Me.txName.Text) + "'"
  209.                             Dim cmdUpdate As OleDbCommand = New OleDbCommand(strUpdate, conn)
  210.                             cmdUpdate.ExecuteNonQuery()     '老是这里提示错误 不明白之前要用 dr.Close()
  211.      
  212.                             MsgBox("修改成功", , "提示")
  213.                             strsql = "select * from telecode"
  214.                             Dim cmdView As New OleDbCommand(strsql, conn)
  215.                             cmdView.ExecuteNonQuery()
  216.                             Dim da As New OleDbDataAdapter
  217.                             da = New OleDbDataAdapter(strsql, conn)
  218.                             Dim ds As New DataSet
  219.                             da.Fill(ds)
  220.                             DataGrid1.DataSource = ds.Tables(0)
  221.                         Case vbNo
  222.                             Exit Sub
  223.                     End Select
  224.                 Else
  225.                     MsgBox("没有找到此数据,请重新输入用户名", , "提示")
  226.                     txName.Focus()
  227.                     Exit Sub
  228.                 End If
  229.             End If
  230.         End Sub
  231. '刷新表
  232.         Private Sub tabpage1_click(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles TabPage1.Click
  233.             txName.Focus()
  234.             Dim strsql As String = "select * from telecode"
  235.             Dim str As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=e:/lytelephone/iteleDB.mdb"
  236.             Dim conn As OleDbConnection
  237.             conn = New OleDbConnection(str)
  238.             conn.Open()
  239.             Dim cmdView As New OleDbCommand(strsql, conn)
  240.             cmdView.ExecuteNonQuery()
  241.             Dim da As New OleDbDataAdapter
  242.             da = New OleDbDataAdapter(strsql, conn)
  243.             Dim ds As New DataSet
  244.             da.Fill(ds)
  245.             DataGrid1.DataSource = ds.Tables(0)
  246.         End Sub
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值