ورود

View Full Version : مشکل در ذخیره تغییرات



ly.comeng
سه شنبه 21 خرداد 1387, 08:22 صبح
سلام به همه دوستان

کد زیر مربوطه به یکی از فرم های پروژه بنده که تو این کد در اجرا برای ویرایش مشکل داره وقتی دکمه ویرایش زده میشه و تغییرات اعمال میشه ذخیره نمیشه یعنیوقتی دکمه ذخیره زده میشه هیچ اتفاقی نمیفته
لطفا کمک کنید

Imports System.Data.SqlClient
Public Class frm_karkard
Dim da As SqlDataAdapter
Dim da_view As SqlDataAdapter
Dim ds As DataSet
Dim edit As Boolean
Dim dv As DataView
Dim i As Integer

Private Sub set_flex()
DataGridView1.Columns(0).HeaderText = "کد سیستم"
DataGridView1.Columns(1).HeaderText = "کارکرد"
DataGridView1.Columns(2).HeaderText = "ساعت اضافه کار"
DataGridView1.Columns(3).HeaderText = "مبلغ اضافه کار"
DataGridView1.Columns(4).HeaderText = "ماليات"
DataGridView1.Columns(5).HeaderText = "شماره خودرو"
DataGridView1.Columns(6).HeaderText = "ماه"
DataGridView1.Columns(7).HeaderText = "سال"
DataGridView1.Columns(8).HeaderText = "مبلغ کارکرد"
DataGridView1.Columns(9).HeaderText = "تعداد روز ماموریت"
DataGridView1.Columns(10).HeaderText = "مبلغ ماموریت"
DataGridView1.Columns(11).Visible = False



End Sub
Private Sub frm_karkard_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
cmd_add.Enabled = True
cmd_save.Enabled = False
cmd_del.Enabled = False
cmd_edit.Enabled = False
cmd_undo.Enabled = False

If cn.State = ConnectionState.Closed Then
cn.Open()
End If
ds = New DataSet
Try
If str_mahal = "" Then
If modir = True Then
da = New SqlDataAdapter("select * from karkard", cn)
da_view = New SqlDataAdapter("select * from view_karkard", cn)
Dim da_khodro As New SqlDataAdapter("select khodro_no from khodro", cn)
da_khodro.Fill(ds, "khodro")
cmb_no.DataSource = ds.Tables("khodro")
cmb_no.DisplayMember = "khodro_no"
cmb_no.Text = ""
Else
da = New SqlDataAdapter("select * from karkard where code_mantaghe=" & cod_jaygah, cn)
da_view = New SqlDataAdapter("select * from view_karkard where code_mantaghe=" & cod_jaygah, cn)
Dim da_khodro As New SqlDataAdapter("select khodro_no from khodro where code_mantaghe=" & cod_jaygah, cn)
da_khodro.Fill(ds, "khodro")
cmb_no.DataSource = ds.Tables("khodro")
cmb_no.Text = ""
End If

Else

Dim da_khodro As New SqlDataAdapter("select khodro_no from khodro where code_mantaghe='" & str_mahal & "'", cn)
da_khodro.Fill(ds, "khodro")
cmb_no.DataSource = ds.Tables("khodro")
cmb_no.Text = str_mahal
Button3.Enabled = False

da = New SqlDataAdapter("select * from karkard where code_mantaghe=" & cod_jaygah, cn)
da_view = New SqlDataAdapter("select * from view_karkard where code_mantaghe=" & cod_jaygah, cn)
End If

da.Fill(ds, "karkard")
Dim cb As New SqlCommandBuilder(da)

da_view.Fill(ds, "view_karkard")

dv = New DataView(ds.Tables("view_karkard"))
DataGridView1.DataSource = ds.Tables("view_karkard")


set_flex()
Catch ex As Exception

MessageBox.Show(ex.Message & ex.Source & ex.StackTrace)
Finally
cn.Close()
End Try

End Sub
Private Sub cmd_add_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd_add.Click
cmd_add.Enabled = False
cmd_save.Enabled = True
cmd_del.Enabled = False
cmd_edit.Enabled = False
cmd_undo.Enabled = True
edit = False
txt_code.Text = ""
txt_karkard.Text = ""
txt_saat.Text = ""
txt_mablagh.Text = ""
txt_maliat.Text = ""
If str_mahal = "" Then
cmb_no.Text = ""
End If
'cmb_mah.Text = ""
'cmb_sal.Text = ""
txt_kol.Text = ""
txt_rooz.Text = ""
txt_mamooriat.Text = ""

txt_karkard.Focus()
End Sub
Private Sub cmd_save_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd_save.Click
If edit = False Then
Dim dr As DataRow
dr = ds.Tables("karkard").NewRow
With dr
'.Item(0) = txt_code.Text
.Item(1) = txt_karkard.Text
.Item(2) = txt_saat.Text
.Item(3) = txt_mablagh.Text
.Item(4) = txt_maliat.Text
.Item(5) = cmb_no.Text
.Item(6) = cmb_mah.Text
.Item(7) = cmb_sal.Text
.Item(8) = txt_kol.Text
.Item(9) = txt_rooz.Text
.Item(10) = txt_mamooriat.Text


End With
ds.Tables("karkard").Rows.Add(dr)
da.Update(ds, "karkard")
ds.Tables("karkard").Clear()
da.Fill(ds, "karkard")
ds.Tables("view_karkard").Clear()
da_view.Fill(ds, "view_karkard")
Else 'edit
With ds.Tables("karkard").Rows(DataGridView1.CurrentRow.Index)
.BeginEdit()
'.Item(0) = txt_code.Text
.Item(1) = txt_karkard.Text
.Item(2) = txt_saat.Text
.Item(3) = txt_mablagh.Text
.Item(4) = txt_maliat.Text
.Item(5) = cmb_no.SelectedValue
.Item(6) = cmb_mah.SelectedValue
.Item(7) = cmb_sal.SelectedValue
.Item(8) = txt_kol.Text
.Item(9) = txt_rooz.Text
.Item(10) = txt_mamooriat.Text

.EndEdit()
End With
da.Update(ds, "karkard")
'ds.Tables("karkard").Clear()
'da.Fill(ds, "karkard")
'ds.Tables("view_karkard").Clear()
'da_view.Fill(ds, "view_karkard")

End If
'txt_code.Text = ""
txt_karkard.Text = ""
txt_saat.Text = ""
txt_mablagh.Text = ""
txt_maliat.Text = ""
cmb_no.Text = ""
cmb_mah.Text = ""
cmb_sal.Text = ""
txt_kol.Text = ""
txt_rooz.Text = ""
txt_mamooriat.Text = ""
cmd_add.Enabled = True
cmd_save.Enabled = False
cmd_del.Enabled = False
cmd_edit.Enabled = False
cmd_undo.Enabled = False
End Sub
Private Sub cmd_del_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd_del.Click
Dim y As Integer
y = MessageBox.Show("حذف شود؟", "توجه", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If y = vbYes Then
Try
If cn.State = ConnectionState.Closed Then
cn.Open()
End If
Dim cmd As New SqlCommand
With cmd
.Connection = cn
.CommandType = CommandType.Text
.CommandText = "delete from karkard where Code_karkard='" & DataGridView1.Item(0, DataGridView1.CurrentRow.Index).Value.ToString & "'"
.ExecuteNonQuery()
End With

ds.Tables("karkard").Clear()
da.Fill(ds, "karkard")
ds.Tables("view_karkard").Clear()
da_view.Fill(ds, "view_karkard")
set_flex()
Catch ex As Exception
MessageBox.Show(ex.Message & ex.Source & ex.StackTrace)
Finally
cn.Close()
End Try
End If
txt_code.Text = ""
txt_karkard.Text = ""
txt_saat.Text = ""
txt_mablagh.Text = ""
txt_maliat.Text = ""
cmb_no.Text = ""
cmb_mah.Text = ""
cmb_sal.Text = ""
txt_kol.Text = ""
txt_rooz.Text = ""
txt_mamooriat.Text = ""
cmd_add.Enabled = True
cmd_save.Enabled = False
cmd_del.Enabled = False
cmd_edit.Enabled = False
cmd_undo.Enabled = False
End Sub
Private Sub cmd_edit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd_edit.Click
cmd_add.Enabled = False
cmd_save.Enabled = True
cmd_del.Enabled = False
cmd_edit.Enabled = False
cmd_undo.Enabled = True
edit = True
txt_code.Text = DataGridView1.Item(0, DataGridView1.CurrentRow.Index).Value.ToString
txt_karkard.Text = DataGridView1.Item(1, DataGridView1.CurrentRow.Index).Value.ToString
txt_saat.Text = DataGridView1.Item(2, DataGridView1.CurrentRow.Index).Value.ToString
txt_mablagh.Text = DataGridView1.Item(3, DataGridView1.CurrentRow.Index).Value.ToString
txt_maliat.Text = DataGridView1.Item(4, DataGridView1.CurrentRow.Index).Value.ToString
cmb_no.Text = DataGridView1.Item(5, DataGridView1.CurrentRow.Index).Value.ToString
cmb_mah.Text = DataGridView1.Item(6, DataGridView1.CurrentRow.Index).Value.ToString
cmb_sal.Text = DataGridView1.Item(7, DataGridView1.CurrentRow.Index).Value.ToString
txt_kol.Text = DataGridView1.Item(8, DataGridView1.CurrentRow.Index).Value.ToString
txt_rooz.Text = DataGridView1.Item(9, DataGridView1.CurrentRow.Index).Value.ToString
txt_mamooriat.Text = DataGridView1.Item(10, DataGridView1.CurrentRow.Index).Value.ToString

End Sub
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
dv.RowFilter = "khodro_no LIKE '" & TextBox1.Text & "%'"
End Sub
Private Sub cmd_undo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd_undo.Click
cmd_add.Enabled = True
cmd_save.Enabled = False
cmd_del.Enabled = False
cmd_edit.Enabled = False
cmd_undo.Enabled = False
edit = False
txt_code.Text = ""
txt_karkard.Text = ""
txt_saat.Text = ""
txt_mablagh.Text = ""
txt_maliat.Text = ""
cmb_no.Text = ""
cmb_mah.Text = ""
cmb_sal.Text = ""
txt_kol.Text = ""
txt_rooz.Text = ""
txt_mamooriat.Text = ""
End Sub
Private Sub DataGridView1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles DataGridView1.Click
cmd_add.Enabled = True
cmd_save.Enabled = False
cmd_del.Enabled = True
cmd_edit.Enabled = True
cmd_undo.Enabled = False
End Sub
Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.Close()
End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Dim f As New frm_khodro

f.ShowDialog()
ds.Tables("Khodro").Clear()
Dim da_khodro As New SqlDataAdapter("select khodro_no from Khodro", cn)
da_khodro.Fill(ds, "khodro")
cmb_no.DataSource = ds.Tables("khodro")
'cmb_no.DisplayMember = "khodro_no"
'cmb_no.ValueMember = "Code_Noe_Khodro"
If str_mahal <> "" Then
cmb_no.Text = str_mahal
str_mahal = ""
Else
cmb_no.Text = ""
End If
End Sub
Private Sub cmb_mah_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmb_mah.SelectedIndexChanged

i = Me.cmb_mah.SelectedIndex + 1
'TextBox2.Text = Me.cmb_mah.SelectedIndex + 1
End Sub

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
str_mahal = DataGridView1.Item(0, DataGridView1.CurrentRow.Index).Value.ToString
Dim frm As New frm_khodro
frm.Show()
End Sub
End Class

ly.comeng
سه شنبه 21 خرداد 1387, 08:49 صبح
لطفا راهنمایی کنید