تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] طلب مساعدة
#1
        السلام  عليكم  ورحمة الله  وبركاته  

  الاخوة  الاعزاء  

 عندي  مشروع   فيه  مشكلة  وهو  يعمل  على  تسجيل  كاميرة  على فورم  واضافة  بياناتها الى  قاعدة بيانات  اكسس  ولكن  واجهتني  مشكلتين  الاولى  لما اشغل البرنامج  بيظهر  عندي  خطا  كما  موظضح في  الصورة  والثاني  ان  لما اضغط اضافة  الى  قاعدة البيانات  ايضا  عندي  خطا  

 انا عامول  موديلات  عدد اثنين  الاول  للاضافة  والذي  ارفق  لكم  الكود الخاة به  وهو  

PHP كود :
'Global
    Public OleCn As New OleDbConnection()
    Public OleDa As New OleDbDataAdapter()
    Public DtaSet As New DataSet()

    '
For Edit
    
Public DtaSet2 As DataSet

    
Public Function StrConnection() As String
        StrConnection 
"Provider=Microsoft.Jet.OLEDB.12.0;Data Source=|DataDirectory|\Students\DB.mdb;Jet OLEDB:Database Password=yazsys.com1234"
        Return StrConnection
    End 
Function

    Public Enum Form_State
        Add_RecordState 
0  'Use DtaSet
        Edit_RecordState = 1 '
Use DtaSet2 
    End Enum

    Dim StudentIDColumn 
As New DataGridViewTextBoxColumn()
    Dim FirstNameColumn As New DataGridViewTextBoxColumn()
    Dim DateOfBirthColumn As New DataGridViewTextBoxColumn()
    Dim DateOfouColumn As New DataGridViewTextBoxColumn()
   

    
'Customize Datagridview...
    Public Sub DataConnection(ByVal DgV As DataGridView)
        DgV.AutoGenerateColumns = False
        With StudentIDColumn
            .DataPropertyName = "Student_ID"
            .HeaderText = "رقم السيارة"
            .Width = 95
        End With
        With FirstNameColumn
            .DataPropertyName = "FirstName"
            .HeaderText = "نوع السيارة"
            .Width = 100
        End With

        With DateOfBirthColumn
            .DataPropertyName = "Date_Of_Birth"
            .HeaderText = "تاريخ الدخول"
            .Width = 100
        End With
        With DateOfouColumn
            .DataPropertyName = "Date_Of_ou"
            .HeaderText = "تاريخ الخروج"
            .Width = 170
        End With
       
       
       
        With DgV
            .DataSource = DtaSet
            .DataMember = "Students"
            .ReadOnly = True
            .MultiSelect = False
            .SelectionMode = DataGridViewSelectionMode.FullRowSelect
            .ShowRowErrors = False
            .ShowCellErrors = False
            .AllowUserToAddRows = False ' 
Disabled or hide (*) Symbol...
            .AllowUserToResizeColumns False 'Disable HearderText Resize Column...
            .AllowUserToResizeRows = False '
Disabled  row resize...
            .RowHeadersVisible False 'To hide Left indicator...
            .DefaultCellStyle.SelectionBackColor = Color.SteelBlue  '
Selection backcolor....
            .AlternatingRowsDefaultCellStyle.BackColor Color.LightGoldenrodYellow 'Alternating Backcolor
            .Columns.AddRange(New DataGridViewColumn() {StudentIDColumn, FirstNameColumn, DateOfBirthColumn, DateOfouColumn})
        End With
    End Sub 

والكود الثاني  الخاص  بزر الاضافة  والي بيظهر  عندي  فيه  هذا  الخطا  كما في  الصورة رقم  2  
الكود  الخاص بالاضافة  والتعديل  هو  ارجو  منكم  المساعدة للي  يعرف  الحل  لا يقصر  عني  اخوكم فراس  

كود الاضافة  

PHP كود :
 If FormState Form_State.Add_RecordState Then
            KeyPreview 
True

            Call ContextMnu
()
            Call CapsLock()  
            Me
.BSave.Text "Save:"
            Me.Text "Add Record:"
            Call ImageSyntax()

            Try
                With OleCn
                    
If .State <> ConnectionState.Open Then
                        
.ConnectionString StrConnection()
                        .Open()
                        'Initialized Command...
                        With OleDa
                            .SelectCommand = New OleDbCommand()
                            .SelectCommand.CommandText = "SELECT * FROM [Students]"
                            .SelectCommand.Connection = OleCn
                        End With

                        '
Insert Command...
                        With OleDa
                            
.InsertCommand = New OleDbCommand()
                            .InsertCommand.CommandText "INSERT INTO [Students] ([Student_ID] , [FirstName] , [Date_Of_Birth] , [Date_Of_ou] , " _
                            
" [StudentPic]) VALUES (@Student_ID , @FirstName ,  @Date_Of_Birth , @Date_Of_ou ,  @StudentPic)"

                            .InsertCommand.Connection OleCn
                            
.InsertCommand.Parameters.Add("@Student_ID"OleDbType.VarWChar50"Student_ID")
                            .InsertCommand.Parameters.Add("@FirstName"OleDbType.VarWChar50"FirstName")
                            .InsertCommand.Parameters.Add("@Date_Of_Birth"OleDbType.VarWChar50"Date_Of_Birth")
                            .InsertCommand.Parameters.Add("@Date_Of_ou"OleDbType.VarWChar50"Date_Of_ou")
                            
                            
.InsertCommand.Parameters.Add("@StudentPic"OleDbType.Binary0"StudentPic")

                        End With

                        
'If Add or New record...Update
                        '
Systax on how to update without using Commandbuilder...
                        With OleDa
                            
.UpdateCommand = New OleDbCommand()
                            .UpdateCommand.CommandText "UPDATE [Students] SET [FirstName] = @FirstName , " _
                            
"[Date_Of_Birth] = @Date_Of_Birth , [Date_Of_ou] = @Date_Of_ou , [StudentPic] = @StudentPic WHERE ([Student_ID] = @Student_ID_Syntax)"

                            .UpdateCommand.Connection OleCn
                            
.UpdateCommand.Parameters.Add("@FirstName"OleDbType.VarWChar50"FirstName")
                            .UpdateCommand.Parameters.Add("@Date_Of_Birth"OleDbType.VarWChar50"Date_Of_Birth")
                            .UpdateCommand.Parameters.Add("@Date_Of_ou"OleDbType.VarWChar50"Date_Of_ou")
                            
                            
.UpdateCommand.Parameters.Add("@StudentPic"OleDbType.Binary0"StudentPic")


                            'To handle error like (Concurrency violation: The UpdateCommand affected 0 of the expected 1 records...)
                            '
DataRow Version Default(Execute scalar)
                            .UpdateCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("@Student_ID_Syntax"System.Data.OleDb.OleDbType.VarWChar50_
                                                                                       System
.Data.ParameterDirection.InputFalse_
                                                                            CType
(0Byte), CType(0Byte), "Student_ID"_
                                                             DataRowVersion
.Default, True))
                        End With
                     

                    End 
If
                End With
            
Catch ex As Exception
                MsgBox
(ex.Message(), MsgBoxStyle.Critical"Error...")
            Finally
                OleCn.Close()
            End Try
            Exit Sub
        End 
If

        If FormState Form_State.Edit_RecordState Then
            KeyPreview 
True

            Call ContextMnu
()
            Call CapsLock()
            Me.BSave.Text "Update:"
            Me.Text "Edit Record:"

            Try
                With OleCn
                    
If .State <> ConnectionState.Open Then
                        
.ConnectionString StrConnection()
                        .Open()

                        With OleDa
                            
.SelectCommand = New OleDbCommand()
                            .SelectCommand.CommandText "SELECT * FROM [Students] WHERE (Student_ID = @Student_ID)"
                            .SelectCommand.Parameters.Add("@Student_ID"OleDbType.VarChar50"Student_ID").Value ShowBind.ToString()
                            .SelectCommand.Connection OleCn
                        End With

                        
'If Modify or Edit record...Update
                        '
Systax on how to update without using Commandbuilder...
                        With OleDa
                            
.UpdateCommand = New OleDbCommand()
                            .UpdateCommand.CommandText "UPDATE [Students] SET [Student_ID] = @Student_ID , [FirstName] = @FirstName  " _
                            
"[Date_Of_Birth] = @Date_Of_Birth , [Date_Of_ou] = @Date_Of_ou , [StudentPic] = @StudentPic WHERE ([Student_ID] = @Student_ID_Syntax)"
                            .UpdateCommand.Connection OleCn
                            
.UpdateCommand.Parameters.Add("@Student_ID"OleDbType.VarWChar50"Student_ID")
                            .UpdateCommand.Parameters.Add("@FirstName"OleDbType.VarWChar50"FirstName")
                            .UpdateCommand.Parameters.Add("@Date_Of_Birth"OleDbType.VarWChar50"Date_Of_Birth")
                            .UpdateCommand.Parameters.Add("@Date_Of_ou"OleDbType.VarWChar50"Date_Of_ou")
                            
                            
.UpdateCommand.Parameters.Add("@StudentPic"OleDbType.Binary0"StudentPic")

                            'To handle error like (Concurrency violation: The UpdateCommand affected 0 of the expected 1 records...)
                            '
DataRow Version Original...
                            .UpdateCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("@Student_ID_Syntax"System.Data.OleDb.OleDbType.VarWChar50_
                                                                                 System
.Data.ParameterDirection.InputFalse_
                                                                        CType
(0Byte), CType(0Byte), "Student_ID"_
                                                             DataRowVersion
.OriginalTrue))
                        End With
                      

                        DtaSet2
.Clear()
                        OleDa.Fill(DtaSet2"Students")
                        Me.TxtStudentID.DataBindings.Add(New Binding("Text"DtaSet2"Students.Student_ID"True))
                        Me.TxtFirstName.DataBindings.Add(New Binding("Text"DtaSet2"Students.FirstName"True)) 
                        Me
.DTDateOfBirth.DataBindings.Add(New Binding("Text"DtaSet2"Students.Date_Of_Birth"True))
                        Me.textou.DataBindings.Add(New Binding("Text"DtaSet2"Students.Date_Of_ou"True))
                       

                        Main 
FrmMain
                        Me
.StudentPic.Image FrmMain.PictureBox1.Image
                    End 
If
                End With
            
Catch ex As Exception
                MsgBox
(ex.Message(), MsgBoxStyle.Critical"Error...")
            Finally
                OleCn.Close()

            End Try
            Exit Sub
        End 
If

    End Sub

    
Private Function RequiredEntry() As Boolean
        
If TxtStudentID.Text "" Or TxtFirstName.Text "" True Then
            MsgBox
("Please enter required * information...."MsgBoxStyle.Critical"Attention...")
            Return True
            
Exit Function
        End If
    End Function
    Private Sub BSave_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles BSave.Click

        Main 
FrmMain
        
If FormState Form_State.Add_RecordState Then
            
If RequiredEntry() = True Then
                
Return
            End If
            Try

                Dim DtaRow As DataRow

                Dim MemStream 
As New MemoryStream
                Dim DataPic_Insert 
As Byte()

                DtaRow DtaSet.Tables("Students").NewRow

                With DtaRow
                    
.Item("Student_ID") = IIf(TxtStudentID.Text ""System.DBNull.ValueTxtStudentID.Text)
                    .Item("FirstName") = IIf(TxtFirstName.Text ""System.DBNull.ValueTxtFirstName.Text)
                    .Item("Date_Of_Birth") = IIf(DTDateOfBirth.Text ""System.DBNull.ValueDTDateOfBirth.Text)
                    .Item("Date_Of_ou") = IIf(textou.Text ""System.DBNull.Valuetextou.Text)


                    Me.StudentPic.Image.Save(MemStreamImaging.ImageFormat.Jpeg)
                    DataPic_Insert MemStream.GetBuffer()
                    MemStream.Read(DataPic_Insert0MemStream.Length)

                    .Item("StudentPic") = DataPic_Insert
                End With

                DtaSet
.Tables("Students").Rows.Add(DtaRow)

                OleDa.Update(DtaSet"Students")
                DtaSet.AcceptChanges()

                'Focus the Added record...
                With Main
                    .BindingContext.Item(DtaSet, "Students").Position = Main.BindingContext.Item(DtaSet, "Students").Count - 1
                    Call .Navigation()
                End With

                MsgBox("Record'
s successfully saved...", MsgBoxStyle.Information, "Record's saved...")
                If MsgBox("Do you want to add new record?", MsgBoxStyle.Question + MsgBoxStyle.YesNo, "Confirmation...") = MsgBoxResult.Yes Then
                    Me.FormState = Form_State.Add_RecordState
                    Call ResetEntry()
                    TxtStudentID.Focus()
                    Exit Sub
                End If
                Me.Close()

            Catch ex As Exception
                MsgBox(ex.Message(), MsgBoxStyle.Exclamation, "Sorry, unable to save...")

                '
if Duplicate Student ID...
                TxtStudentID.Focus()
                TxtStudentID.SelectAll()
                DtaSet.RejectChanges()
            End Try
            Exit Sub
        End 
If

        If FormState Form_State.Edit_RecordState Then
            
If RequiredEntry() = True Then
                
Return
            End If
            Try

                Dim MemStream As New MemoryStream
                Dim DataPic_Update 
As Byte()

                With DtaSet2
                    
.Tables("Students").Rows(0).Item("Student_ID") = IIf(TxtStudentID.Text ""System.DBNull.ValueTxtStudentID.Text)
                    .Tables("Students").Rows(0).Item("FirstName") = IIf(TxtFirstName.Text ""System.DBNull.ValueTxtFirstName.Text)
                    .Tables("Students").Rows(0).Item("Date_Of_Birth") = IIf(DTDateOfBirth.Text ""System.DBNull.ValueDTDateOfBirth.Text)
                    .Tables("Students").Rows(0).Item("Date_Of_ou") = IIf(textou.Text ""System.DBNull.Valuetextou.Text)


                    Me.StudentPic.Image.Save(MemStreamImaging.ImageFormat.Jpeg)
                    DataPic_Update MemStream.GetBuffer()
                    MemStream.Read(DataPic_Update0MemStream.Length)

                    .Tables("Students").Rows(0).Item("StudentPic") = DataPic_Update

                End With


                BindingContext
(DtaSet2"Students").EndCurrentEdit()
                If DtaSet2.HasChanges() Then
                    OleDa
.Update(DtaSet2"Students")
                    DtaSet2.AcceptChanges()
                End If

                'Focus updated record without load or refresh...
                With Main
                    With .DgV
                        .SelectedRows(0).Cells(0).Value = Me.TxtStudentID.Text
                        .SelectedRows(0).Cells(1).Value = Me.TxtFirstName.Text
                        .SelectedRows(0).Cells(2).Value = Me.DTDateOfBirth.Text
                        .SelectedRows(0).Cells(3).Value = Me.textou.Text

                    End With
                    .PictureBox1.Image = Me.StudentPic.Image
                End With

                MsgBox("Record'
s successfully updated...", MsgBoxStyle.Information, "Record's Updated...")
            Catch ex As Exception
                MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Sorry, Unable to update...")

                '
If Duplicate Student ID Back to updated Student ID (Undo)
                Me.TxtStudentID.Text Main.DgV.SelectedRows(0).Cells(0).Value
            End 
Try
            Exit Sub
        End 
If 
الرد }}}
تم الشكر بواسطة:
#2
الخطأ الأول يقول أن جهازك لا يحتوي على محرك البيانات الخاص ب مايكروسوفت أكسس
Microsoft Access Database Engine
حمل المحرك من هنا :
https://www.microsoft.com/en-us/download...x?id=13255


الخطأ الثاني يقول :
أنك تستخدم كائن في الكود وهو لم ينشئ بعد . 
يمكنك إكتشافة بتتبع الأخطاء أو بعمل debugging
الرد }}}
#3
(08-04-18, 02:41 AM)عبدالله الدوسري كتب : الخطأ الأول يقول أن جهازك لا يحتوي على محرك البيانات الخاص ب مايكروسوفت أكسس
Microsoft Access Database Engine
حمل المحرك من هنا :
https://www.microsoft.com/en-us/download...x?id=13255


الخطأ الثاني يقول :
أنك تستخدم كائن في الكود وهو لم ينشئ بعد . 
يمكنك إكتشافة بتتبع الأخطاء أو بعمل debugging

أخ  عبد الله  

 بداية  اشكرك لردك  ولكني  انا نظامي  
64 بت  وقمت بتحميل  الحزمتين  ونصبتهم  ولكن لتحل  مشكلة  في الصورة  الاولى  اما بالثانية  المشكلة  الثاني  فانا راجعت الكود  اكثر  من مرة  ولم  اجد الحل  هل بامكانك  مساعدتي  يعني  ارسل  اليك  المشروح  وحل  المشكلة  مع ترك  تعليق فةق سطر المشكلة  وتكون متفضل  على اخيك  العبد  الفاني
الرد }}}
تم الشكر بواسطة: sendbad100
#4
نصب حزمة 32 حتى لو كان نظامك 64
الرد }}}
تم الشكر بواسطة: sendbad100 , عبد العزيز البسكري
#5
(08-04-18, 03:00 AM)عبدالله الدوسري كتب : نصب حزمة 32 حتى لو كان نظامك 64

اخي  نصبتها ايضا  ونفس المشكلة
الرد }}}
تم الشكر بواسطة:
#6
الموضوه ليس مراجعة الكود ,, بل بمتابعة الكود وأين يقف عند السطر الذي تحدث فية المشكلة
الخطأ ليس منطقي لتجد صعوبة في حلة 
بل هو برمجي وهو أسهل في الحل , اي أنك عند عمل Debugging سيقف البرنامج عند الخطأ وستكتشف الكود الخطأ

(08-04-18, 03:02 AM)فراس الغزي كتب :
(08-04-18, 03:00 AM)عبدالله الدوسري كتب : نصب حزمة 32 حتى لو كان نظامك 64

اخي  نصبتها ايضا  ونفس المشكلة



قم بإزالتها من النظام ( كل الحزمتين )
ثم نصب حزمة 32

إلى إذا كانت لديك برامج Office أكثر من إصدارة من الممكن أن تجد مشكلة , وتحتاج إلى إزالة أحد الإصدارات
الرد }}}
#7
اخوان  مافي  حد يساعدني  في  هذا حل  هذه المشكلة
الرد }}}
تم الشكر بواسطة:
#8
السلام عليكم

جرب التالي 

حمل الاكسيس   

 ويفضل  اكسس  2007
الرد }}}
#9
إضافة لما تقدّم به أساتذتنا الأكارم :
عبد الله الدوسري
SENDBAD100
لا تنس أخي الكريم تغيير الرقم 12 بجملة الاتصال إلى الرقم 4
تحياتي
قناتنا على اليوتوب
الرد }}}
تم الشكر بواسطة: فراس الغزي , sendbad100 , sendbad100
#10
عبد الله الدوسري

SENDBAD100
[b][b]عبد العزيز البسكري[/b][/b]

[b]شكرا لكم  احبتي  جربت  كل  شي ولكن  نفس  الشي  المهم  عندي  هو لماذا  لا يقوم بالاضافة  مع ان الكود صحيح  والله العالم  [/b]
[b] اتمنى  منكم  المساعدة في  الاضافة  والعرض في الداتا جريد  وشكرا لكم  [/b]
الرد }}}
تم الشكر بواسطة: sendbad100



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


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