تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
مشكلة في نقل البرنامج الى جهاز اخر
#4
السلام عليكم ورحمة الله وبركاته
اخي الكريم 
قم بتجربة البرنامج وعند الضغط على زر تحديث البيانات بحيث يجلبها من ملف اكسل تظهر رسالة ان قاعدة البيانات مفتوحة ولايكمل البرنامج وانت تقول انه يعمل بشكل طبيعي ؟؟؟؟ 
كانت المشكلة في اغلاق قاعدة البيانات قمت بالتعديل على جزئيات الفتح والاغلاق كلها وتم عمل البرنامج بنجاح
اليك الكود كاملا انظر الى اماكن التعديل وقارنها مع كودك الاصلي 
كود :
Imports System.Data.OleDb
Imports Microsoft.Office.Interop



Public Class Form1

   Dim PROC
   Dim path As String

   Dim conn2 As New OleDbConnection("PROVIDER=MICROSOFT.ACE.OLEDB.12.0;DATA SOURCE=" & My.Settings.db & ";")
   Dim conn As New OleDbConnection("PROVIDER=MICROSOFT.ACE.OLEDB.12.0;DATA SOURCE=" & My.Settings.path & "; EXTENDED PROPERTIES=EXCEL 12.0;")

   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
       Try
           SkinCrafter1.LoadSkinFromFile("skins\Arcus.skf")
           SkinCrafter1.ApplySkin()
           If My.Settings.db = "" Then
               MsgBox(" لا يوجد قاعدة بيانات متصلة ", MsgBoxStyle.MsgBoxRight & MsgBoxStyle.Information, "مدراء المدارس")
               Exit Sub
           End If

           If IO.File.Exists(My.Settings.db) Then
               If conn2.State = ConnectionState.Open Then conn2.Close()
               conn2.Open()
               Dim cmd As New OleDbCommand("select * from Leaders where SchName is not null ", conn2)

               Dim dt As New DataTable
               dt.Clear()
               dt.Load(cmd.ExecuteReader)
               If dt.Rows.Count > 0 Then
                   DataGridView2.DataSource = dt
                   For s As Integer = 0 To dt.Rows.Count - 1
                       ComboBox1.Items.Add(dt.Rows(s).Item("SchName"))
                   Next
                   Label7.Text = My.Settings.mdarsCount
                   Label15.Text = My.Settings.edart
               Else
                   My.Settings.edart = ""
                   My.Settings.mdarsCount = ""
               End If
               conn2.Close()
           Else
               MsgBox(" مسار قاعدة البيانات خاطيء ")
               Button2_Click(Nothing, Nothing)

           End If
       Catch ex As Exception
           'MsgBox(ex.Message)
           Exit Sub
       End Try

   End Sub

   Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
       If conn2.State = ConnectionState.Open Then conn2.Close()
       conn2.Open()
       Dim cmd As New OleDbCommand("select * from Leaders  where SchName=@SchName", conn2)
       cmd.Parameters.Add("SchName", OleDbType.VarChar).Value = ComboBox1.Text
       
       Dim dt As New DataTable
       dt.Clear()
       dt.Load(cmd.ExecuteReader)

       Dim h As Integer = ComboBox1.SelectedIndex
       DataGridView2.Rows(h).Selected = True
       DataGridView2.FirstDisplayedScrollingRowIndex = DataGridView2.Rows(h).Index
       DataGridView2.Rows.IndexOf(DataGridView2.CurrentRow)

       Label1.Text = dt.Rows(0).Item("SchWz")
       Label2.Text = dt.Rows(0).Item("SchName")
       Label3.Text = dt.Rows(0).Item("leaderName")
       Label4.Text = dt.Rows(0).Item("mobile").ToString
       Label5.Text = dt.Rows(0).Item("tel").ToString
       Label14.Text = dt.Rows(0).Item("mktb")
       conn2.Close()
   End Sub

   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
       conn.Close()
       conn2.Close()
       'conn3.Close()
       Me.Close()

   End Sub

   Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
       Try
           ofd.Filter = "Excel Files(*.xlsx)|*.xlsx|All files (*.*)|*.*"
           If ofd.ShowDialog = Windows.Forms.DialogResult.OK Then
               'My.Settings.url = ofd.FileName

               If ofd.SafeFileName = "LI_HierarchySchoolAdmins.xlsx" Then
                   Dim conn3 As New OleDbConnection("PROVIDER=MICROSOFT.ACE.OLEDB.12.0;DATA SOURCE=" & ofd.FileName & "; EXTENDED PROPERTIES=EXCEL 12.0;")

                   If conn3.State = ConnectionState.Open Then conn3.Close()
                   conn3.Open()
                   Label16.Text = "فضلا انتظر  .."

                   Dim cmd As New OleDbCommand("select * from [LI_HierarchySchoolAdmins$] where f14 is not null", conn3)
                   Dim dt As New DataTable
                   dt.Clear()
                   dt.Load(cmd.ExecuteReader)
                   conn3.Close()
                   For f As Integer = 1 To dt.Rows.Count - 1
                       If dt.Rows(f).Item("f15").ToString = "" Then
                           dt.Rows(f).Item("f15") = dt.Rows(f - 1).Item("f15").ToString
                       Else
                           Dim ms As String = dt.Rows(f).Item("f15").ToString
                       End If
                   Next
                   DataGridView1.DataSource = dt
                   DataGridView1.Update()

                   For s As Integer = 1 To dt.Rows.Count - 1
                       ComboBox1.Items.Add(dt.Rows(s).Item("f13"))
                   Next
                   '===========نسخ قاعدة البيانات الجديدة الى القاعدة في المسار الصحيح  ======

                   Dim cmd3 As New OleDbCommand("DELETE * from Leaders", conn2)
                   If conn2.State = ConnectionState.Open Then conn2.Close()
                   conn2.Open()
                   cmd3.ExecuteNonQuery()
                   conn2.Close()

                   Timer1.Enabled = True
                   Dim cont As Integer = dt.Rows.Count - 1
                   ProgressBar1.Maximum = cont
                   ProgressBar1.Minimum = 0
                   ProgressBar1.Value = 0

                   If conn2.State = ConnectionState.Open Then conn2.Close()
                   conn2.Open()
                   For i = 1 To dt.Rows.Count - 1
                       Dim cmd2 As New OleDbCommand("INSERT INTO Leaders(SchWz,SchName,leaderName,mobile,tel,mktb) values(@SchWz,@SchName,@leaderName,@mobile,@tel,@mktb)", conn2)
                       cmd2.Parameters.AddWithValue("@SchWz", DataGridView1.Rows(i).Cells("f14").Value)
                       cmd2.Parameters.AddWithValue("@SchName", DataGridView1.Rows(i).Cells("f13").Value)
                       cmd2.Parameters.AddWithValue("@leaderName", DataGridView1.Rows(i).Cells("f5").Value)
                       cmd2.Parameters.AddWithValue("@mobile", DataGridView1.Rows(i).Cells("f4").Value)
                       cmd2.Parameters.AddWithValue("@tel", DataGridView1.Rows(i).Cells("f3").Value)
                       cmd2.Parameters.AddWithValue("@mktb", DataGridView1.Rows(i).Cells("f15").Value)

                       cmd2.ExecuteNonQuery()
                       PROC = Int((i / cont) * 100)

                       ProgressBar1.Value = i
                       ProgressBar1.Value = i - 1
                       Label16.Text = PROC & "  %"

                   Next
                   conn2.Close()
                   My.Settings.edart = dt.Rows(1).Item("f18").ToString
                   My.Settings.mdarsCount = dt.Rows.Count - 1
                   Label15.Text = My.Settings.edart
                   Label7.Text = My.Settings.mdarsCount
                   '--------------------------------
                   Dim cmd5 As New OleDbCommand("select * from Leaders where SchName is not null ", conn2)
                   If conn2.State = ConnectionState.Open Then conn2.Close()
                   conn2.Open()
                   Dim dt5 As New DataTable
                   dt5.Clear()
                   dt5.Load(cmd5.ExecuteReader)
                   DataGridView2.DataSource = dt5
                   DataGridView2.Refresh()
                   For s As Integer = 0 To dt5.Rows.Count - 1
                       ComboBox1.Items.Add(dt5.Rows(s).Item("SchName"))
                   Next
                   Label7.Text = My.Settings.mdarsCount
                   Label15.Text = My.Settings.edart
                   conn2.Close()
                   '----------------------------------
                   MsgBox("تم تحديث البيانات بنجاح", MsgBoxStyle.OkOnly & MsgBoxStyle.Information, "تنبيه")
                   Label16.Text = ""
                   '=================
               Else
                   MsgBox(" قاعدة البيانات غير متطابقة  ", MsgBoxStyle.OkOnly & MsgBoxStyle.Information, "مدراء المدارس")
               End If
           End If
       Catch ex As Exception
           MsgBox(ex.Message)
           'Exit Sub
       Finally
           conn2.Close()
       End Try
   End Sub

   Private Sub Form1_FormClosed(sender As Object, e As FormClosedEventArgs) Handles Me.FormClosed
       conn.Close()
   End Sub

   Private Sub DataGridView2_CellMouseClick(sender As Object, e As DataGridViewCellMouseEventArgs) Handles DataGridView2.CellMouseClick
       Dim i As Integer = DataGridView2.Rows.IndexOf(DataGridView2.CurrentRow)
       Label1.Text = DataGridView2.Rows(i).Cells("SchWz").Value.ToString
       Label2.Text = DataGridView2.Rows(i).Cells("SchName").Value.ToString
       Label3.Text = DataGridView2.Rows(i).Cells("leaderName").Value.ToString
       Label4.Text = DataGridView2.Rows(i).Cells("mobile").Value.ToString
       Label5.Text = DataGridView2.Rows(i).Cells("tel").Value.ToString
       Label14.Text = DataGridView2.Rows(i).Cells("mktb").Value.ToString
   End Sub
   Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
       If ProgressBar1.Maximum Then
           Timer1.Enabled = False
           ProgressBar1.Value = 0
       End If
   End Sub

End Class

اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات







الرد }}}
تم الشكر بواسطة: waw , aftfm , aftfm , dalas , ابو انس , سيف الشمال


الردود في هذا الموضوع
RE: مشكلة في نقل البرنامج الى جهاز اخر - بواسطة ابراهيم ايبو - 07-09-21, 11:59 PM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  مشكلة تقويم ام القرى مع ويندوز 11 assuhimi 1 102 15-12-25, 07:13 PM
آخر رد: assuhimi
  لماذا البرنامج يتوقف بدل عرض رسالة الخطأ justforit 0 109 07-12-25, 10:22 AM
آخر رد: justforit
  حل مشكلة قائمتين ليستا متساويتين بالحجم justforit 4 284 31-10-25, 02:33 PM
آخر رد: justforit
  مشكلة في عرض الفورم بالحجم المحدد مصمم هاوي 1 254 29-09-25, 03:17 AM
آخر رد: مصمم هاوي
  [VB.NET] طريقة تفعيل الشاشة الصغيرة في جهاز الكاشير MOHAMMED ALZWI 0 261 25-09-25, 02:17 PM
آخر رد: MOHAMMED ALZWI
  [VB.NET] مشكلة في عرضForm2.vb MOHAMMED ALZWI 1 376 24-09-25, 06:16 PM
آخر رد: Amir_Alzubidy
  مشكلة دعم skin للغة العربية مصمم هاوي 2 728 16-09-25, 07:57 AM
آخر رد: مصمم هاوي
  جهاز ارسال رسائل SMS من خلال برنامج فيجوال بيسك جيولوجي مبتدئ 4 1,029 05-09-25, 12:37 PM
آخر رد: جيولوجي مبتدئ
  مشكلة في عدم الحفظ والتعديل مصمم هاوي 3 892 17-08-25, 10:13 AM
آخر رد: أبو خالد الشكري
  كيفية حفظ إعدادات البرنامج بحيث لا تتغير أحمد إبراهيم سعد 4 3,008 06-08-25, 06:34 PM
آخر رد: Taha Okla

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم