19-10-12, 03:49 PM
السلام عليكم ورحمة الله وبركاته
لدى مشروع ويعمل والحمد الله على أكمل وجه وعند فحص المشروع بالكود اناليزر وجدت هذا التحذير ولا ادرى كيف السبيل لمعالجته
[HTML]CA2202 Do not dispose objects multiple times Object 'cn1' can be disposed more than once in method 'add_mo_sa_to_all.btn_save_Click(Object, EventArgs)'. To avoid generating a System.ObjectDisposedException you should not call Dispose more than one time on an object.: Lines: 323 Sayadla add_mo_sa_to_all.vb 323
[/HTML]
الكود المستخدم داخل هذا النموذج والذى يتم الإشارة الى تحذير به هو ( الجزء الملون باللون الأحمر )
.
طبعا الكود على وضعه السابق يعمل ولكنى قلق من التحذير وحابب انى افهمه
مع العلم اننى عندما نقلت جزء [HTML]cn1.Close()[/HTML] ليكون اسفل Next لا يظهر الكود اناليزر اى تحذير ولكن عند الحفظ تأتينى رسالة وهى
[HTML]The connection was not closed. The connection's current state is open.[/HTML]
فهل من توضيحات بارك الله فيكم
لدى مشروع ويعمل والحمد الله على أكمل وجه وعند فحص المشروع بالكود اناليزر وجدت هذا التحذير ولا ادرى كيف السبيل لمعالجته
[HTML]CA2202 Do not dispose objects multiple times Object 'cn1' can be disposed more than once in method 'add_mo_sa_to_all.btn_save_Click(Object, EventArgs)'. To avoid generating a System.ObjectDisposedException you should not call Dispose more than one time on an object.: Lines: 323 Sayadla add_mo_sa_to_all.vb 323
[/HTML]
الكود المستخدم داخل هذا النموذج والذى يتم الإشارة الى تحذير به هو ( الجزء الملون باللون الأحمر )
.
كود :
' تأكيد حفظ البيانات
Dim y As DialogResult = MessageBox.Show("هل تريد حفظ بيانات الشهر", "تنبيه", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If y = DialogResult.Yes Then
Dim cn1 As New SqlConnection(Con_STR)
For i As Integer = 0 To DGV1.RowCount - 1
Dim cm As New SqlCommand("add_sa_m_data", cn1)
cm.CommandType = CommandType.StoredProcedure
cm.Parameters.Add("@mo_nm", SqlDbType.NVarChar, 50).Value = mo_nm_com.SelectedItem.ToString
cm.Parameters.Add("@e_id", SqlDbType.Int).Value = DGV1.Rows(i).Cells("e_id_col").Value.ToString
cm.Parameters.Add("@e_class_no", SqlDbType.Int).Value = DGV1.Rows(i).Cells("e_class_no_col").Value.ToString
cm.Parameters.Add("@e_nm", SqlDbType.NVarChar, 50).Value = DGV1.Rows(i).Cells("e_nm_col").Value.ToString
cm.Parameters.Add("@e_bran", SqlDbType.NVarChar, 50).Value = e_bran_com.SelectedItem.ToString
cm.Parameters.Add("@e_asasy", SqlDbType.Float).Value = DGV1.Rows(i).Cells("e_asasy_col").Value.ToString
cm.Parameters.Add("@e_omal", SqlDbType.Int).Value = DGV1.Rows(i).Cells("e_omal_col").Value.ToString
cm.Parameters.Add("@e_edafy_1_per", SqlDbType.Int).Value = DGV1.Rows(i).Cells("e_edafy_1_per_col").Value.ToString
cm.Parameters.Add("@e_edafy_1", SqlDbType.Float).Value = DGV1.Rows(i).Cells("e_edafy_1_col").Value.ToString
cm.Parameters.Add("@e_edafy_2_per", SqlDbType.Int).Value = DGV1.Rows(i).Cells("e_edafy_2_per_col").Value.ToString
cm.Parameters.Add("@e_edafy_2", SqlDbType.Float).Value = DGV1.Rows(i).Cells("e_edafy_2_col").Value.ToString
cm.Parameters.Add("@e_edafy", SqlDbType.Float).Value = DGV1.Rows(i).Cells("e_edafy_col").Value.ToString
cm.Parameters.Add("@e_bdl_entkal", SqlDbType.Float).Value = DGV1.Rows(i).Cells("e_bdl_entkal_col").Value.ToString
cm.Parameters.Add("@e_bdl_tmsel", SqlDbType.Float).Value = DGV1.Rows(i).Cells("e_bdl_tmsel_col").Value.ToString
cm.Parameters.Add("@e_bdl_estkbal", SqlDbType.Float).Value = DGV1.Rows(i).Cells("e_bdl_estkbal_col").Value.ToString
cm.Parameters.Add("@e_bdl_tfrogh", SqlDbType.Float).Value = DGV1.Rows(i).Cells("e_bdl_tfrogh_col").Value.ToString
cm.Parameters.Add("@e_bdl_raha", SqlDbType.Float).Value = DGV1.Rows(i).Cells("e_bdl_raha_col").Value.ToString
cm.Parameters.Add("@e_bdl_computer", SqlDbType.Float).Value = DGV1.Rows(i).Cells("e_bdl_computer_col").Value.ToString
cm.Parameters.Add("@e_bdl_tot", SqlDbType.Float).Value = DGV1.Rows(i).Cells("e_bdl_tot_col").Value.ToString
cm.Parameters.Add("@e_day_edafy", SqlDbType.Int).Value = DGV1.Rows(i).Cells("e_day_edafy_no_col").Value.ToString
cm.Parameters.Add("@e_day_edafy_tot", SqlDbType.Float).Value = DGV1.Rows(i).Cells("e_day_edafy_tot_col").Value.ToString
cm.Parameters.Add("@e_hour_edafy", SqlDbType.Float).Value = DGV1.Rows(i).Cells("e_hour_edafy_col").Value.ToString
cm.Parameters.Add("@e_tamen_per_1_26", SqlDbType.Float).Value = DGV1.Rows(i).Cells("e_tamen_per_1_26_col").Value.ToString
cm.Parameters.Add("@e_asay_tot", SqlDbType.Float).Value = DGV1.Rows(i).Cells("e_asay_tot_col").Value.ToString
cm.Parameters.Add("@e_elawa_1", SqlDbType.Float).Value = DGV1.Rows(i).Cells("e_elawa_1_col").Value.ToString
cm.Parameters.Add("@e_elawa_2", SqlDbType.Float).Value = DGV1.Rows(i).Cells("e_elawa_2_col").Value.ToString
cm.Parameters.Add("@e_elawa_3", SqlDbType.Float).Value = DGV1.Rows(i).Cells("e_elawa_3_col").Value.ToString
cm.Parameters.Add("@e_elawa_4", SqlDbType.Float).Value = DGV1.Rows(i).Cells("e_elawa_4_col").Value.ToString
cm.Parameters.Add("@e_elawa_5", SqlDbType.Float).Value = DGV1.Rows(i).Cells("e_elawa_5_col").Value.ToString
cm.Parameters.Add("@e_change", SqlDbType.Float).Value = DGV1.Rows(i).Cells("e_change_tot_col").Value.ToString
cm.Parameters.Add("@e_tamen_per_1_24", SqlDbType.Float).Value = DGV1.Rows(i).Cells("e_tamen_per_1_24_col").Value.ToString
cm.Parameters.Add("@e_tamenat", SqlDbType.Float).Value = DGV1.Rows(i).Cells("e_tamenat_col").Value.ToString
cm.Parameters.Add("@e_change_all", SqlDbType.Float).Value = DGV1.Rows(i).Cells("e_change_all_col").Value.ToString
cm.Parameters.Add("@e_mosthk_tot", SqlDbType.Float).Value = DGV1.Rows(i).Cells("e_mosthk_tot_col").Value.ToString
cm.Parameters.Add("@e_tamen_per_2_26", SqlDbType.Float).Value = DGV1.Rows(i).Cells("e_tamen_per_2_26_col").Value.ToString
cm.Parameters.Add("@e_tamen_per_14", SqlDbType.Float).Value = DGV1.Rows(i).Cells("e_tamen_per_14_col").Value.ToString
cm.Parameters.Add("@e_tamen_per_2_24", SqlDbType.Float).Value = DGV1.Rows(i).Cells("e_tamen_per_2_24_col").Value.ToString
cm.Parameters.Add("@e_tamen_per_11", SqlDbType.Float).Value = DGV1.Rows(i).Cells("e_tamen_per_11_col").Value.ToString
cm.Parameters.Add("@e_tamnen_egtmaey", SqlDbType.Float).Value = DGV1.Rows(i).Cells("e_tamnen_egtmaey_col").Value.ToString
cm.Parameters.Add("@e_day_no_mortb", SqlDbType.Int).Value = DGV1.Rows(i).Cells("e_day_no_mortb_col").Value.ToString
cm.Parameters.Add("@e_total_day_no_mortb", SqlDbType.Float).Value = DGV1.Rows(i).Cells("e_total_day_no_mortb_col").Value.ToString
cm.Parameters.Add("@e_tamen_ghyab_asasy_per_26", SqlDbType.Float).Value = DGV1.Rows(i).Cells("e_tamen_ghyab_asasy_per_26_col").Value.ToString
cm.Parameters.Add("@e_tamen_ghyab_change_per_24", SqlDbType.Float).Value = DGV1.Rows(i).Cells("e_tamen_ghyab_change_per_24_col").Value.ToString
cm.Parameters.Add("@e_day_geza_no", SqlDbType.Int).Value = DGV1.Rows(i).Cells("e_day_geza_no_col").Value.ToString
cm.Parameters.Add("@e_day_geza_tot", SqlDbType.Float).Value = DGV1.Rows(i).Cells("e_day_geza_tot_col").Value.ToString
cm.Parameters.Add("@e_mortb_tax", SqlDbType.Float).Value = DGV1.Rows(i).Cells("e_mortb_tax_col").Value.ToString
cm.Parameters.Add("@e_day_ghyab_no", SqlDbType.Int).Value = DGV1.Rows(i).Cells("e_day_ghyab_no_col").Value.ToString
cm.Parameters.Add("@e_day_ghyab_tot", SqlDbType.Float).Value = DGV1.Rows(i).Cells("e_day_ghyab_tot_col").Value.ToString
cm.Parameters.Add("@e_day_ghyab_mrdy_no", SqlDbType.Int).Value = DGV1.Rows(i).Cells("e_ghyab_mrdy_col").Value.ToString
cm.Parameters.Add("@e_day_ghyab_mrdy_tot", SqlDbType.Float).Value = DGV1.Rows(i).Cells("e_ghyab_mrdy_tot_col").Value.ToString
cm.Parameters.Add("@e_moda_tamen", SqlDbType.Float).Value = DGV1.Rows(i).Cells("e_moda_tamen_col").Value.ToString
cm.Parameters.Add("@e_alex_bank", SqlDbType.Float).Value = DGV1.Rows(i).Cells("e_alex_bank_col").Value.ToString
cm.Parameters.Add("@e_estktaat_tot", SqlDbType.Float).Value = DGV1.Rows(i).Cells("e_estktaat_tot_col").Value.ToString
cm.Parameters.Add("@e_safy_all", SqlDbType.Float).Value = DGV1.Rows(i).Cells("e_safy_all_col").Value.ToString
cn1.Open()
cm.ExecuteNonQuery()
[color=#FF0000][b] cn1.Close()[/b][/color]
Next
MessageBox.Show("تم حفظ البيانات", "تنبيه", MessageBoxButtons.OK, MessageBoxIcon.Information)
e_bran_com.Enabled = True
mo_nm_com.Enabled = True
e_bran_com.SelectedIndex = -1
mo_nm_com.SelectedIndex = -1
DGV1.DataSource = Nothing
Else
Exit Sub
End If
طبعا الكود على وضعه السابق يعمل ولكنى قلق من التحذير وحابب انى افهمه
مع العلم اننى عندما نقلت جزء [HTML]cn1.Close()[/HTML] ليكون اسفل Next لا يظهر الكود اناليزر اى تحذير ولكن عند الحفظ تأتينى رسالة وهى
[HTML]The connection was not closed. The connection's current state is open.[/HTML]
فهل من توضيحات بارك الله فيكم