Can anyone improve this coding? Any help is greatly appreciated.
I want to add the varchar data (1/7 or 1/9) to the datagridview and convert it to a decimal number and save it to the query. Then, I want to display the value of the decimal query to the varchar number in the DataGridview.
Imports MySql.Data.MySqlClient
Public Class KuisionerAHP
Private Sub Kuisioner_Load(sender As Object, e As EventArgs) Handles MyBase.Load
loading()
End Sub
Dim jlhKriteria As Integer
Dim strKriteria() As String
Dim adaKriteria As Boolean = False
Private Sub Button1_Click_1(sender As Object, e As EventArgs) Handles Button1.Click
MainRoad.Show()
Me.Close()
End Sub
Sub loading()
Connect()
Dim lstResponden() As String = GetList("tb_responden", "nama", "nomor")
Dim lstKriteria() As String = GetList("tb_kriteria", "Kriteria", "nomor")
cmbresponden.Items.Clear()
For i = 0 To lstResponden.Length - 1
cmbresponden.Items.Add(lstResponden(i))
Next
End Sub
Sub BuatMatriks(ByVal Kriteria As String)
Dim rs As MySqlDataReader
Dim cmd As MySqlCommand
Dim lstKriteria As New List(Of String)
cmd = New MySqlCommand("select `Kriteria` from `tb_kriteria` order by `nomor` asc", Connector)
rs = cmd.ExecuteReader
adaKriteria = rs.HasRows
If adaKriteria Then
'buat matriks perbandingan berpasangan survey kuisioner dg1
dg1.Columns.Clear()
While rs.Read
lstKriteria.Add(rs("Kriteria"))
dg1.Columns.Add(rs("Kriteria"), rs("Kriteria"))
End While
strKriteria = lstKriteria.ToArray
jlhKriteria = lstKriteria.Count
rs.Close()
dg1.Rows.Add(jlhKriteria + 1)
For i = 0 To jlhKriteria - 1
Dim hd As New DataGridViewRowHeaderCell
dg1.Rows(i).HeaderCell.Value = dg1.Columns(i).HeaderText
Next
dg1.Rows(jlhKriteria).HeaderCell.Value = "Jumlah"
isiMatriksPerbandinganBerpsangan(Kriteria)
Else
rs.Close()
MsgBox("Data Kriteria Tidak ada, Isi dahulu!")
End If
For Each col As DataGridViewColumn In dg1.Columns
col.SortMode = DataGridViewColumnSortMode.Programmatic
Next
End Sub
Sub isiMatriksPerbandinganBerpsangan(ByVal nama As String)
If adaKriteria Then
Dim cmd As MySqlCommand
Dim rs As MySqlDataReader
cmd = New MySqlCommand("select * from `tb_kuisionerahp` where `nama`='" & cmbresponden.Text & "'", Connector)
rs = cmd.ExecuteReader
If rs.HasRows Then
While rs.Read
dg1.Item(rs("colIndex"), rs("rowIndex")).Value = rs("nilai")
End While
rs.Close()
HitungMatrikResponden()
Else
rs.Close()
For i = 0 To jlhKriteria - 1
dg1.Item(i, i).Value = 1
Next
End If
End If
End Sub
Sub HitungMatrikResponden()
If adaKriteria Then
For i = 0 To jlhKriteria - 1
For j = 0 To jlhKriteria - 1
If i > j Then
dg1.Item(j, i).Value = ((dg1.Item(j, j).Value) / (dg1.Item(i, j).Value))
End If
Next
Next
End If
End Sub
Private Sub btnProses_Click(sender As Object, e As EventArgs) Handles btnProses.Click
HitungMatrikResponden()
End Sub
Private Sub cmbresponden_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cmbresponden.SelectedIndexChanged
BuatMatriks(cmbresponden.Text)
End Sub
Private Sub dg1_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles dg1.CellContentClick
End Sub
Private Sub BtnSimpan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSimpan.Click
Dim cmd As MySqlCommand
cmd = New MySqlCommand("delete from `tb_kuisionerahp` where `nama`='" & cmbresponden.Text & "'", Connector)
cmd.ExecuteNonQuery()
For i = 0 To jlhKriteria - 1
For j = 0 To jlhKriteria - 1
cmd = New MySqlCommand("insert into `tb_kuisionerahp` values('" & cmbresponden.Text & "','" & j & "','" & i & "','" & dg1.Item(j, i).Value & "')", Connector)
cmd.ExecuteNonQuery()
Next
Next
MsgBox("Data Tersimpan")
End Sub
Private Sub BtnHps_Click(sender As Object, e As EventArgs) Handles BtnHps.Click
If cmbresponden.Text <> "" Then
Dim cmd As New MySqlCommand(AutoDeleteQuery("tb_Kuisionerahp", "Nama", cmbresponden.Text), Connector)
Try
cmd.ExecuteNonQuery()
loading()
MsgBox("Data Terhapus")
Catch ex As Exception
MsgBox(ex.Message)
End Try
cmd = Nothing
End If
End Sub
Private Sub dg1_CellBeginEdit(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellCancelEventArgs) Handles dg1.CellBeginEdit
If e.ColumnIndex > e.RowIndex Then
e.Cancel = False
Else
e.Cancel = True
End If
End Sub
End Class
Comments
Post a Comment