تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
حل مشكله عند اضافه موظف
#1
هذه المشكله تظهر مع ان قاعده البيانات لاتحتوي علي EMPLOYEES1 

الكود يعمل عند اضافه اول شخص عند اضافه شخص اخر تظهر هذه المشكله
كود :
Public Sub Load_Employees()
       dt_Employees.Clear()
       Dim cmd As New SqlCommand("select Amp_id,Amp_name,Amp_phone,Amp_state from Employees", connSQLServer)
       connSQLServer.Open()
       dt_Employees.Load(cmd.ExecuteReader)
       connSQLServer.Close()
       cmd = Nothing

   End Sub

   Public Function Max_emp_id_From_Employee()
       Dim number As Integer
       Try
           Dim cmd As New SqlCommand("Select Max (Amp_id) Employees", connSQLServer)

           connSQLServer.Open()
           number = cmd.ExecuteScalar
           connSQLServer.Close()
       Catch
           number = 0
           connSQLServer.Close()
       End Try
       Return number

   End Function


   Public Sub Insert_Employees(ByVal Amp_name As String, ByVal Amp_phone As String, ByVal Amp_state As Boolean)
       Dim cmd As New SqlCommand("Insert Into Employees(Amp_id,Amp_name,Amp_phone,Amp_state) values (@Amp_id,@Amp_name,@Amp_phone,@Amp_state)", connSQLServer)

       cmd.Parameters.Add("Amp_id", SqlDbType.Int).Value = Max_emp_id_From_Employee() + 1
       cmd.Parameters.Add("Amp_name", SqlDbType.NVarChar).Value = Amp_name
       cmd.Parameters.Add("Amp_phone", SqlDbType.NVarChar).Value = Amp_phone
       cmd.Parameters.Add("Amp_state", SqlDbType.Bit).Value = Amp_state
       connSQLServer.Open()
       cmd.ExecuteNonQuery()
       connSQLServer.Close()
       cmd = Nothing
   End Sub


الملفات المرفقة صورة/صور
   
الرد }}}
تم الشكر بواسطة: ابو ليلى
#2
باعتبار حقل الترقيم غير تلقائي من نوع رقمي ..
كود :
Imports System.Data.SqlClient
Public Class Form1
   Public dt As DataTable
   Public Sub Load_Employees()
       dt.Clear()
       Dim cmd As New SqlClient.SqlCommand("select Amp_id,Amp_name,Amp_phone,Amp_state from Employees", Conne)
       Conne.Open()
       dt.Load(cmd.ExecuteReader)
       cmd = Nothing
   End Sub
   Public Function Maximum_Record_In_Table(Field_Name, Table_Name) As Integer
       Dim InfoTable As New DataTable
       Dim InfoAdapter As New SqlDataAdapter
       InfoTable.Clear()
       InfoAdapter = New SqlDataAdapter("SELECT MAX(" & Field_Name & ") From " & Table_Name & "", Conne)
       InfoAdapter.Fill(InfoTable)
       Dim Auto_Number As Integer
       If IsDBNull(InfoTable(0)(0)) = True Then
           Auto_Number = 1
       Else
           Auto_Number = InfoTable(0)(0) + 1
       End If
       Return Auto_Number
   End Function
   Public Sub Insert_Employees(ByVal Amp_id As Int32, ByVal Amp_name As String, ByVal Amp_phone As String, ByVal Amp_state As Boolean)
       Dim cmd As New SqlCommand("Insert Into Employees(Amp_id,Amp_name,Amp_phone,Amp_state) values (@Amp_id,@Amp_name,@Amp_phone,@Amp_state)", Conne)
       cmd.Parameters.Add("Amp_id", SqlDbType.Int).Value = Amp_id
       cmd.Parameters.Add("Amp_name", SqlDbType.NVarChar).Value = Amp_name
       cmd.Parameters.Add("Amp_phone", SqlDbType.NVarChar).Value = Amp_phone
       cmd.Parameters.Add("Amp_state", SqlDbType.Bit).Value = Amp_state
       cmd.ExecuteNonQuery()
       cmd = Nothing
       MsgBox("تم الحفظ بنجاح")
   End Sub
   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
       Me.TextBox1.Text = Maximum_Record_In_Table("Amp_id", "Employees")
   End Sub
 Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
       Insert_Employees(TextBox1.Text, TextBox2.Text, TextBox3.Text, CheckBox1.CheckState)
   End Sub
End Class
قناتنا على اليوتوب
الرد }}}
تم الشكر بواسطة: Emam emam , mohamedalqadi , ابراهيم ايبو , ابو ليلى
#3
(30-03-20, 11:09 PM)عبد العزيز البسكري كتب :
باعتبار حقل الترقيم غير تلقائي من نوع رقمي ..
كود :
Imports System.Data.SqlClient
Public Class Form1
   Public dt As DataTable
   Public Sub Load_Employees()
       dt.Clear()
       Dim cmd As New SqlClient.SqlCommand("select Amp_id,Amp_name,Amp_phone,Amp_state from Employees", Conne)
       Conne.Open()
       dt.Load(cmd.ExecuteReader)
       cmd = Nothing
   End Sub
   Public Function Maximum_Record_In_Table(Field_Name, Table_Name) As Integer
       Dim InfoTable As New DataTable
       Dim InfoAdapter As New SqlDataAdapter
       InfoTable.Clear()
       InfoAdapter = New SqlDataAdapter("SELECT MAX(" & Field_Name & ") From " & Table_Name & "", Conne)
       InfoAdapter.Fill(InfoTable)
       Dim Auto_Number As Integer
       If IsDBNull(InfoTable(0)(0)) = True Then
           Auto_Number = 1
       Else
           Auto_Number = InfoTable(0)(0) + 1
       End If
       Return Auto_Number
   End Function
   Public Sub Insert_Employees(ByVal Amp_id As Int32, ByVal Amp_name As String, ByVal Amp_phone As String, ByVal Amp_state As Boolean)
       Dim cmd As New SqlCommand("Insert Into Employees(Amp_id,Amp_name,Amp_phone,Amp_state) values (@Amp_id,@Amp_name,@Amp_phone,@Amp_state)", Conne)
       cmd.Parameters.Add("Amp_id", SqlDbType.Int).Value = Amp_id
       cmd.Parameters.Add("Amp_name", SqlDbType.NVarChar).Value = Amp_name
       cmd.Parameters.Add("Amp_phone", SqlDbType.NVarChar).Value = Amp_phone
       cmd.Parameters.Add("Amp_state", SqlDbType.Bit).Value = Amp_state
       cmd.ExecuteNonQuery()
       cmd = Nothing
       MsgBox("تم الحفظ بنجاح")
   End Sub
   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
       Me.TextBox1.Text = Maximum_Record_In_Table("Amp_id", "Employees")
   End Sub
 Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
       Insert_Employees(TextBox1.Text, TextBox2.Text, TextBox3.Text, CheckBox1.CheckState)
   End Sub
End Class
لم يتوافق مع كودي لاني اريد ان افعل شي اخر
الرد }}}
تم الشكر بواسطة: ابراهيم ايبو
#4
أرجو المعذرة أنّي قدّمت المساعدة حسب مفهومي الخاص
سأعتبر ما طرحته أعلاه .. آخر مشاركة لي أقدّمها لشخص ثانٍ
أن أفكّر و أتكهّن و أخمّن إلكترونيا عبر الأنترنت و أنجر قاعدة بيانات و جدول للتجربة
بدون أدنى لباقة و كلمة شكر
 يأتي من يقول أنّه يريد فعل شيئا آخرا .. و هذا الشيء الآخر لم يطرحه كتسهيل للمساعدة ..
هذه قمّة .. الكورورنا
سأحتفظ بمساعداتي لنفسي .. و السلام عليكم
تحياتي
قناتنا على اليوتوب
الرد }}}
#5
(30-03-20, 11:48 PM)عبد العزيز البسكري كتب :
أرجو المعذرة أنّي قدّمت المساعدة حسب مفهومي الخاص
سأعتبر ما طرحته أعلاه .. آخر مشاركة لي أقدّمها لشخص ثانٍ
أن أفكّر و أتكهّن و أخمّن إلكترونيا عبر الأنترنت و أنجر قاعدة بيانات و جدول للتجربة
بدون أدنى لباقة و كلمة شكر
 يأتي من يقول أنّه يريد فعل شيئا آخرا .. و هذا الشيء الآخر لم يطرحه كتسهيل للمساعدة ..
هذه قمّة .. الكورورنا
سأحتفظ بمساعداتي لنفسي .. و السلام عليكم
تحياتي
والله انا لااقصد شيئ فقط اريد ان يتوافق مع كودي ومعذرة اخي

(30-03-20, 11:54 PM)mohamedalqadi كتب :
(30-03-20, 11:48 PM)عبد العزيز البسكري كتب :
أرجو المعذرة أنّي قدّمت المساعدة حسب مفهومي الخاص
سأعتبر ما طرحته أعلاه .. آخر مشاركة لي أقدّمها لشخص ثانٍ
أن أفكّر و أتكهّن و أخمّن إلكترونيا عبر الأنترنت و أنجر قاعدة بيانات و جدول للتجربة
بدون أدنى لباقة و كلمة شكر
 يأتي من يقول أنّه يريد فعل شيئا آخرا .. و هذا الشيء الآخر لم يطرحه كتسهيل للمساعدة ..
هذه قمّة .. الكورورنا
سأحتفظ بمساعداتي لنفسي .. و السلام عليكم
تحياتي
والله انا لااقصد شيئ فقط اريد ان يتوافق مع كودي ومعذرة اخي

انا اريد فقط اضافه الموظف هذا كود الموديل كامل
كود :
Imports System.Data.SqlClient

Module Emp_Module
   Public dt_Employees As New DataTable
   Public add_edit As String
   Public emp_id As Integer

   Public Sub Load_Employees()
       dt_Employees.Clear()
       Dim cmd As New SqlCommand("select emp_id,emp_name,emp_phone,emp_state from Employees where emp_state = 1", connSQLServer)
       connSQLServer.Open()
       dt_Employees.Load(cmd.ExecuteReader)
       connSQLServer.Close()
       cmd = Nothing

   End Sub

   Public Function Max_emp_id_From_Employee()
       Dim number As Integer
       Try
           Dim cmd As New SqlCommand("Select Max (emp_id) Employees", connSQLServer)

           connSQLServer.Open()
           number = cmd.ExecuteScalar
           connSQLServer.Close()
       Catch
           number = 0
           connSQLServer.Close()
       End Try
       Return number

   End Function


   Public Sub Insert_Employees(ByVal emp_name As String, ByVal emp_phone As String, ByVal emp_state As Boolean)
       Dim cmd As New SqlCommand("Insert Into Employees(emp_id,emp_name,emp_phone,emp_state) values (@emp_id,@emp_name,@emp_phone,@emp_state)", connSQLServer)
       cmd.Parameters.Add("emp_id", SqlDbType.Int).Value = emp_id
       cmd.Parameters.Add("emp_name", SqlDbType.NVarChar).Value = emp_name
       cmd.Parameters.Add("emp_phone", SqlDbType.NVarChar).Value = emp_phone
       cmd.Parameters.Add("emp_state", SqlDbType.Bit).Value = emp_state
       connSQLServer.Open()
       cmd.ExecuteNonQuery()
       connSQLServer.Close()
       cmd = Nothing
   End Sub

   Public Sub Update_Employees(ByVal emp_name As String, ByVal emp_phone As String, ByVal emp_state As Boolean, ByVal emp_id2 As Integer)
       Dim cmd As New SqlCommand("Update Employees set emp_name=@emp_name,emp_phone=@emp_phone,emp_state=@emp_state where emp_id=@emp_id2", connSQLServer)
       cmd.Parameters.Add("emp_id2", SqlDbType.Int).Value = emp_id2
       cmd.Parameters.Add("emp_name", SqlDbType.NVarChar).Value = emp_name
       cmd.Parameters.Add("emp_phone", SqlDbType.NVarChar).Value = emp_phone
       cmd.Parameters.Add("emp_state", SqlDbType.Bit).Value = emp_state
       connSQLServer.Open()
       cmd.ExecuteNonQuery()
       connSQLServer.Close()
       cmd = Nothing
   End Sub
   Public Sub Update_Employees_delete(ByVal emp_id2 As Integer)
       Dim cmd As New SqlCommand("Update Employees set emp_state=@emp_state where emp_id=@emp_id2", connSQLServer)
       cmd.Parameters.Add("emp_id2", SqlDbType.Int).Value = emp_id2
       cmd.Parameters.Add("emp_state", SqlDbType.Bit).Value = False
       connSQLServer.Open()
       cmd.ExecuteNonQuery()
       connSQLServer.Close()
       cmd = Nothing
   End Sub
End Module
وهذا كود بوتن الحفظ
كود :
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
       If add_edit = "Add" Then
           Insert_Employees(TextBox1.Text, TextBox2.Text, CheckBox1.CheckState)
       Else
           Update_Employees(TextBox1.Text, TextBox2.Text, CheckBox1.Checked, emp_id)

       End If
       Load_Employees()
       Close()

   End Sub
الرد }}}
تم الشكر بواسطة: ابو ليلى , ابراهيم ايبو
#6
السلام عليكم و رحمة الله و بركاته
الاخ عبد العزيز معه كامل الحق , وضح اكثر و حاول ان تاتي بكل التفاصيل المتعلقة بالمشكلة , ليس عليه ان يتكهن طريقة العمل لديك.
بكل حال مفاد الرسالة المعروضة لديك تفيد بان لديك تكرار في المفتاح الرئيسيي و ان هناك علاقة بين جدولين يجب الانتباه الى ترابط و توافق المفاتيح بينها.
اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال
الرد }}}
تم الشكر بواسطة: ابراهيم ايبو
#7
(31-03-20, 12:08 AM)ابو ليلى كتب : السلام عليكم و رحمة الله و بركاته
الاخ عبد العزيز معه كامل الحق , وضح اكثر و حاول ان تاتي بكل التفاصيل المتعلقة بالمشكلة , ليس عليه ان يتكهن طريقة العمل لديك.
بكل حال مفاد الرسالة المعروضة لديك تفيد بان لديك تكرار في المفتاح الرئيسيي و ان هناك علاقة بين جدولين يجب الانتباه الى ترابط و توافق المفاتيح بينها.

مسحت كل شي له علاقه بال employee ولكن مازالت نفس المشكله
الرد }}}
تم الشكر بواسطة: ابو ليلى
#8
ارفع مثالك
اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال
الرد }}}
تم الشكر بواسطة: ابراهيم ايبو
#9
(31-03-20, 12:18 AM)ابو ليلى كتب : ارفع مثالك

بقاعده البيانات ؟
الرد }}}
تم الشكر بواسطة: ابو ليلى
#10
اكيد اخي ..
ارفعها سكربت
اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال
الرد }}}
تم الشكر بواسطة: ابراهيم ايبو



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


يقوم بقرائة الموضوع: