无法使用VB

时间:2017-08-18 02:49:11

标签: asp.net vb.net ms-access

我一直在几个论坛中搜索,包括我正在面对的问题。

目前我正在使用Visual Studio 2017开发一个网站,数据库使用MS Access 2007运行。我面临的问题可能不是错误,因为它没有显示任何错误消息,尽管我已经把Try和Catch打开了我的代码。

所以我正在尝试对Access中的表执行UPDATE查询,但无法更新。目的是更新名为' DataDiriKaryawan'的表。

在更新之前,我选择了每个  nip' (ID作为主键)并通过调用Function' isi'将其显示在我的网络表单上。在page_load上。然后,用户可以根据预先存在的数据编辑数据。

 Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    Session("editval") = "WAMB17001"
    isi()
End Sub

  Protected Sub isi()
    Dim dr As OleDb.OleDbDataReader
    Dim nip As String = Session("editval")

    Try
        Using command As New OleDb.OleDbCommand("SELECT * FROM DataDiriKaryawan WHERE NIP='" & nip & "'", mdl_koneksi.connection)
            dr = command.ExecuteReader
            dr.Read()

            lblnip.Text = dr.GetValue(0)
            txtnamadepan.Text = dr.GetValue(1)
            txtnamabelakang.Text = dr.GetValue(2)
            txtnoktp.Text = dr.GetValue(3)
            txtnonpwp.Text = dr.GetValue(4)
            txtalamatktp.Text = dr.GetValue(5)
            txtkabktp.Text = dr.GetValue(6)
            txtprovinsiktp.Text = dr.GetValue(7)
            txtkodeposktp.Text = dr.GetValue(8)
            txtnegaraktp.Text = dr.GetValue(9)

            txtalamattgl.Text = dr.GetValue(10)
            txtkabtgl.Text = dr.GetValue(11)
            txtprovtgl.Text = dr.GetValue(12)
            txtkodepostgl.Text = dr.GetValue(13)
            txtnegaratgl.Text = dr.GetValue(14)

            txtkontak1.Text = dr.GetValue(15)
            txtkontak2.Text = dr.GetValue(16)
            txtkontakdarurat.Text = dr.GetValue(17)
            txthbgn.Text = dr.GetValue(18)

            If dr.GetValue(19) = "Laki-laki" Then
                rblaki.Checked = True
            Else
                rbperempuan.Checked = False
            End If

            txtnikah.Text = dr.GetValue(20)
            txtjmlhanak.Text = dr.GetValue(21)
            txttmptlahir.Text = dr.GetValue(22)
            txttgllahir.Text = dr.GetValue(23)
            txtpendidikan.Text = dr.GetValue(24)
            txtnorek.Text = dr.GetValue(25)

            command.Dispose()
            connection.Close()
            dr.Close()

        End Using
    Catch

    End Try

在Web表单中编辑数据后,将执行UPDATE查询。

Private Sub simpan()
    Dim nip As String = Session("editval")

    Try
        Using command As New OleDb.OleDbCommand("UPDATE DataDiriKaryawan SET nama_depan=@nama_depan, nama_akhir=@nama_akhir, ktp_no=@ktp_no, no_npwp=@no_npwp, alamat_ktp=@alamat_ktp, 
        kota_ktp=@kota_ktp, provinsi_ktp=@provinsi_ktp, kodepos_ktp=@kodepos_ktp, negara_ktp=@negara_ktp, alamat_tgl=@alamat_ktp, kota_tgl=@kota_tgl, provinsi_tgl=@provinsi_tgl,
        kodepos_tgl=@kodepos_tgl, negara_tgl=@negara_tgl, cp1=@cp1, cp2=@cp2, kontak_darurat=@kontak_darurat, hbgn_kontak=@hbgn_kontak, jenis_kelamin=@jenis_kelamin, status_nikah=@status_nikah,
        jmlh_anak=@jmlh_anak, tempat_lahir=@tempat_lahir, tgl_lahir=@tgl_lahir, pendidikan_terakhir=@pendidikan_terakhir, rek_niaga=@rek_niaga WHERE NIP='" & nip & "'", mdl_koneksi.connection)
            command.Parameters.Add(New OleDb.OleDbParameter("@nama_depan", OleDbType.Char)).Value = txtnamadepan.Text
            command.Parameters.Add(New OleDb.OleDbParameter("@nama_akhir", OleDbType.Char)).Value = txtnamabelakang.Text
            command.Parameters.Add(New OleDb.OleDbParameter("@ktp_no", OleDbType.Char)).Value = txtnoktp.Text
            command.Parameters.Add(New OleDb.OleDbParameter("@no_npwp", OleDbType.Char)).Value = txtnonpwp.Text
            command.Parameters.Add(New OleDb.OleDbParameter("@no_npwp", OleDbType.Char)).Value = txtnonpwp.Text
            command.Parameters.Add(New OleDb.OleDbParameter("@alamat_ktp", OleDbType.Char)).Value = txtalamatktp.Text
            command.Parameters.Add(New OleDb.OleDbParameter("@kota_ktp", OleDbType.Char)).Value = txtkabktp.Text
            command.Parameters.Add(New OleDb.OleDbParameter("@kota_ktp", OleDbType.Char)).Value = txtkabktp.Text
            command.Parameters.Add(New OleDb.OleDbParameter("@provinsi_ktp", OleDbType.Char)).Value = txtprovinsiktp.Text
            command.Parameters.Add(New OleDb.OleDbParameter("@kodepos_ktp", OleDbType.Char)).Value = txtkodeposktp.Text
            command.Parameters.Add(New OleDb.OleDbParameter("@negara_ktp", OleDbType.Char)).Value = txtnegaraktp.Text

            command.Parameters.Add(New OleDb.OleDbParameter("@alamat_tgl", OleDbType.Char)).Value = txtalamattgl.Text
            command.Parameters.Add(New OleDb.OleDbParameter("@kota_tgl", OleDbType.Char)).Value = txtkabtgl.Text
            command.Parameters.Add(New OleDb.OleDbParameter("@provinsi_tgl", OleDbType.Char)).Value = txtprovtgl.Text
            command.Parameters.Add(New OleDb.OleDbParameter("@kodepos_tgl", OleDbType.Char)).Value = txtkodepostgl.Text
            command.Parameters.Add(New OleDb.OleDbParameter("@negara_tgl", OleDbType.Char)).Value = txtnegaratgl.Text

            command.Parameters.Add(New OleDb.OleDbParameter("@cp1", OleDbType.Char)).Value = txtkontak1.Text
            command.Parameters.Add(New OleDb.OleDbParameter("@cp2", OleDbType.Char)).Value = txtkontak2.Text
            command.Parameters.Add(New OleDb.OleDbParameter("@kontak_darurat", OleDbType.Char)).Value = txtkontakdarurat.Text
            command.Parameters.Add(New OleDb.OleDbParameter("@hbgn_kontak", OleDbType.Char)).Value = txthbgn.Text

            If rblaki.Checked = True Then
                command.Parameters.Add(New OleDb.OleDbParameter("@jenis_kelamin", OleDbType.Char)).Value = rblaki.Text
            Else
                command.Parameters.Add(New OleDb.OleDbParameter("@jenis_kelamin", OleDbType.Char)).Value = rbperempuan.Text
            End If

            command.Parameters.Add(New OleDb.OleDbParameter("@status_nikah", OleDbType.Char)).Value = txtnikah.Text
            command.Parameters.Add(New OleDb.OleDbParameter("@jmlh_anak", OleDbType.Char)).Value = txtjmlhanak.Text
            command.Parameters.Add(New OleDb.OleDbParameter("@tempat_lahir", OleDbType.Char)).Value = txttmptlahir.Text
            command.Parameters.Add(New OleDb.OleDbParameter("@tgl_lahir", OleDbType.Char)).Value = txttgllahir.Text

            command.Parameters.Add(New OleDb.OleDbParameter("@pendidikan_terakhir", OleDbType.Char)).Value = txtpendidikan.Text
            command.Parameters.Add(New OleDb.OleDbParameter("@rek_niaga", OleDbType.Char)).Value = txtnorek.Text
            command.Parameters.Add(New OleDb.OleDbParameter("@NIP", OleDbType.Char)).Value = lblnip.Text


            command.ExecuteNonQuery()
            command.Dispose()
            connection.Close()
            Session("editval") = ""
            Page.Response.Redirect("FrmRedirectInsertData.aspx")
        End Using
    Catch ex As Exception
        lblpesan.Visible = True
        MsgBox(ex.Message)

    End Try
End Sub

然后在btnsimpan.click中调用包含UPDATE查询的Function' simpan'。

Protected Sub btnsimpan_Click(sender As Object, e As EventArgs) Handles btnsimpan.Click
    simpan()
    Session("editval") = ""
End Sub

现在这里是异常现象:

  1. 尽管尝试了catch,但我没有显示任何错误消息。 Web表单只刷新为与之前相同的数据,并且MS Access中的表未更新。

  2. 如果我没有打电话给功能' isi'在page_load上用预先存在的数据填充Web表单,UPDATE查询非常有用。

  3. 我在其他表格中使用了相同的方法和代码用于不同的表格,它运作得很好。

  4. 我已经花了几天时间,尝试比较Access中的表和Visual Studio中的代码,我发现代码和设置/属性没有区别。

    因此,我可能需要你的帮助来解决这个问题。干杯!

0 个答案:

没有答案