تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
اقتراحاتكم حول المشروع و على طريقة كتابة الاكواد
#1
السلام عليكم ورحمة الله وبركاتة
انتهيت من مشروعي والحمد لله لا توجد اخطاء 
مشروعي خاص ليا والغرض منة تعلم البرمجة وانا اقو م باستخدامة الان ولا اواجة اي اخطاء 
احببت ان اعرض شاشتين من البرنامج 
والاكواد المستخدمة واريد ارائكم وانتقاداتكم ونصائحكم حول الطريقة التي كتبت بها الاكواد
# مثلا الكود التالي لو كتبتة بالطريقة هذة افضل #
اعمل على VB.NET 2015
وقاعدة بيانات SQL 2008 R2
كنت اعمل على VB.NET 2010
وبمساعدة الاخوان في هذا الموضوع قلبت على VB.NET 2015


وخلال كتابتي للبرنامج اي خطا  كان يواجهني كنت اطرح موضوع هنا
 اولا انا استخدم كلاس واستدعية بالشاشات وهذا الكود داخل الكلاس

كود :
Imports System.Data
Imports System.Data.SqlClient
Imports System.Globalization
Imports Microsoft.SqlServer.Management.Smo
Imports Microsoft.SqlServer.Management.Common
Imports System.IO
Public Class DBCoonnect
   Public conn As New SqlConnection("Data Source=.\SQLEXPRESS;Initial Catalog=Company_2018;Integrated Security=True")
   Public dt As New DataTable
   Public da As New SqlDataAdapter
   Public dv As New DataView
   Public ds As New DataSet
   Public cur As CurrencyManager
   Public cmd As New SqlCommand
   Public bbay As String
   Public COMB As String
   Public saveok As Boolean
   Public pos As Integer
   Public ID As Integer
   Public op As New OpenFileDialog
   Public opf As New FolderBrowserDialog
   Public sql As String
   Public Sub createDatabase()
       'كود انشاء قاعدة البيانات
       If check() = False Then
           Try
               Dim sqlConnectionString As String = "Data Source=.\SQLExpress;Integrated Security=True"
               Dim script As String = File.ReadAllText(Application.StartupPath & "\CompanyWork2.sql")
               Dim conn As SqlConnection = New SqlConnection(sqlConnectionString)
               Dim server As Server = New Server(New ServerConnection(conn))
               server.ConnectionContext.ExecuteNonQuery(script)
           Catch ex As Exception
               MessageBox.Show(ex.Message)
           End Try
       End If
   End Sub
   Private Function check() As Boolean
       'كود للتشييك على قاعدة البيانات ان كانت موجودة او لا
       Dim exist As Boolean = False
       Try
           Dim conn As SqlConnection = New SqlConnection("Data Source=.\SQLExpress;Integrated Security=True")
           Dim cmd As SqlCommand = New SqlCommand("", conn)
           Dim rdr As SqlDataReader
           cmd.CommandText = "exec sys.sp_databases"
           conn.Open()
           rdr = cmd.ExecuteReader()
           While rdr.Read()
               If rdr.GetString(0) = "Company_2018" Then
                   exist = True
                   Exit While
               End If
           End While
           conn.Close()
           rdr.Dispose()
           cmd.Dispose()
           conn.Dispose()
       Catch ex As Exception
           MessageBox.Show(ex.Message.ToString())
           Return False
       End Try
       Return exist
   End Function
   Public Sub load_data()
       If conn.State = ConnectionState.Open Then
           conn.Close()
       End If
       'تحميل البيانات بالداتا جريد فيو
       dt = New DataTable
       da = New SqlDataAdapter("select *from woork1", conn)
       da.Fill(dt)
       dv = New DataView(dt)
   End Sub
   Public Sub load_dataMonthe()
       If conn.State = ConnectionState.Open Then
           conn.Close()
       End If
       'تحميل البيانات بالداتا جريد فيو
       dt = New DataTable
       da = New SqlDataAdapter("select *from Month_Information", conn)
       da.Fill(dt)
       dv = New DataView(dt)
   End Sub
   Public Sub formatgrd(ByVal columnName() As String, ByVal grd As DataGridView)
       'تسمية الهيدر تكست للداتا جريد فيو
       grd.DataSource = dv
       For i As Integer = 0 To columnName.Count - 1
           grd.Columns(i).HeaderText = columnName(i)
           grd.Columns(0).Visible = False
       Next
   End Sub
   Public Function SQlExicute(ByVal sqlstatment As String) As Boolean
       Try
           'دالة حفظ وتعديل وحذف
           If conn.State = ConnectionState.Open Then
               conn.Close()
           End If
           Dim cmd As New SqlCommand
           cmd.CommandText = sqlstatment
           conn.Open()
           cmd.Connection = conn
           cmd.ExecuteNonQuery()
           Return True
       Catch ex As Exception
           Return False
           MsgBox(ex.Message)
       Finally
           conn.Close()
       End Try
   End Function
   Public Sub ClereAllText(ByVal frm As Form)
       'دالة تفريغ التكست بوكس
       For Each ctrl As Control In frm.Controls
           If TypeOf ctrl Is TextBox Then
               ctrl.Text = ""
           End If
       Next
   End Sub
   Public Sub fillcombobox(ByVal cbo As ComboBox, ByVal tablename As String, ByVal col_name As String, ByVal col_value As String, ByVal whr As String)
       'تعبئة الكومبو بكس
       Try
           Dim VarSQL As String
           VarSQL = ""
           VarSQL = "Select " + col_name + " , " + col_value + " From " + tablename + " " + whr
           Dim sda As New SqlDataAdapter(VarSQL, conn)
           Dim ds As New DataSet()
           sda.Fill(ds)
           cbo.DataSource = ds.Tables(0)
           cbo.DisplayMember = col_name
           cbo.ValueMember = col_value
       Catch
       End Try
   End Sub
   Public Sub summ(dgv As DataGridView, txt As TextBox)
       'دالة جمع عمود في الداتا جريد فيو
       'dgv.DataSource = dt
       Dim summ As Double = 0
       For i As Integer = 0 To dgv.RowCount - 1
           summ += dgv.Rows(i).Cells(5).Value
       Next
       txt.Text = Format(summ, "00.00")
       'txt.Text = Format(summ, "N1")
       'txt.Text = summ.ToString("N2")
   End Sub
   Public Sub dateformae(ByVal dat As DateTimePicker)
       'دالة اخذ تاريخ اليوم للداتا تايم بيكر
       dat.Text = Date.Now.ToString("yyyy/MM/dd")
   End Sub
   Public Sub showposition(lbl As Label)
       'تعبئة رقم السجل بالتكست بوكس او اليبل
       lbl.Text = " السجل رقم " & cur.Position + 1 & " من " & cur.Count
   End Sub
   Public Sub FormatDgv(dgv As DataGridView)
       'دالة فورمات الداتا جريد فيو
       dgv.Columns(1).Width = 175
       dgv.Columns(2).Width = 90
       dgv.Columns(3).Width = 90
       dgv.Columns(3).DefaultCellStyle.Format = "yyyy/MM/dd"
       dgv.Columns(4).Width = 100
       dgv.Columns(5).Width = 120
       dgv.Columns(5).DefaultCellStyle.Format = "0.0"
       'dgv.Columns(5).DefaultCellStyle.Format = "N1"
       dgv.Columns(6).Width = 220
       dgv.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
       dgv.Columns(2).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
       dgv.Columns(3).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
       dgv.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
       dgv.Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
       dgv.Columns(6).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
       Dim DataGridView1ColumnHeaderStyle As New DataGridViewCellStyle()
       DataGridView1ColumnHeaderStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
       dgv.ColumnHeadersDefaultCellStyle = DataGridView1ColumnHeaderStyle
   End Sub
   Public Sub FormatDGVmonthe(dgv As DataGridView)
       'دالة فورمات الداتا جريد فيو للطباعة
       dgv.Columns(1).Width = 125
       dgv.Columns(2).Width = 125
       dgv.Columns(2).DefaultCellStyle.Format = "yyyy/MM/dd"
       dgv.Columns(3).Width = 150
       dgv.Columns(3).DefaultCellStyle.Format = "0.0"
       dgv.Columns(4).Width = 100
       dgv.Columns(4).DefaultCellStyle.Format = "0.0"
       dgv.Columns(5).Width = 100
       dgv.Columns(5).DefaultCellStyle.Format = "0.0"
       dgv.Columns(6).Width = 195
       dgv.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
       dgv.Columns(2).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
       dgv.Columns(3).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
       dgv.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
       dgv.Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
       dgv.Columns(6).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
       Dim DataGridView1ColumnHeaderStyle As New DataGridViewCellStyle()
       DataGridView1ColumnHeaderStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
       dgv.ColumnHeadersDefaultCellStyle = DataGridView1ColumnHeaderStyle
   End Sub
End Class

وهذة شاشة الاضافة 



وهذا الكود المستخدم 

كود :
Imports System.Data.SqlClient
Public Class FrmAdd
   Dim myconn As New DBCoonnect
   Private Sub FrmAdd_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
       myconn.dateformae(dat:=DateTimePicker1)
       myconn.load_data()
       DgvAdd.DataSource = myconn.dt
       DgvAdd.DataSource = Nothing
       Dim coluname() As String = {"الرقم", "اسم الشركة", "اليوم", " التاريخ ", "معلومات", "عدد ساعات الاضافي", "ملاحظات"}
       myconn.formatgrd(coluname, DgvAdd)
       BinDataAdd()
       myconn.FormatDgv(dgv:=DgvAdd)
       myconn.cur = CType(Me.BindingContext(myconn.dv), CurrencyManager)
       myconn.showposition(lbl:=LbAdd)
       myconn.summ(dgv:=DgvAdd, txt:=TexTotal)
       BtnSave.Enabled = False
       TexCompany.Enabled = False
       ComboBoxDay.Enabled = False
       DateTimePicker1.Enabled = False
       ComInformisen.Enabled = False
       TxtHouer.Enabled = False
       TxtNotes.Enabled = False
   End Sub
   Private Sub DgvAdd_CellClick(sender As Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DgvAdd.CellClick
       Try
           Dim pos As Integer = Me.DgvAdd.CurrentRow.Index
           Me.Textrecid.Text = DgvAdd.Rows(pos).Cells(0).Value
           Me.TexCompany.Text = DgvAdd.Rows(pos).Cells(1).Value
           Me.ComboBoxDay.Text = DgvAdd.Rows(pos).Cells(2).Value
           Me.DateTimePicker1.Text = DgvAdd.Rows(pos).Cells(3).Value
           Me.ComInformisen.Text = DgvAdd.Rows(pos).Cells(4).Value
           Me.TxtHouer.Text = DgvAdd.Rows(pos).Cells(5).Value
           Me.TxtHouer.Text = Val(Me.TxtHouer.Text).ToString("0.0")
           Me.TxtNotes.Text = DgvAdd.Rows(pos).Cells(6).Value
       Catch ex As Exception
           Exit Sub
       End Try
       myconn.showposition(lbl:=LbAdd)
   End Sub
   Private Sub BtnNew_Click(sender As System.Object, e As System.EventArgs) Handles BtnNew.Click
       myconn.ClereAllText(Me)
       TexCompany.Focus()
       ComboBoxDay.SelectedIndex = 0
       ComInformisen.SelectedIndex = 0
       myconn.dateformae(dat:=DateTimePicker1)
       BtnSave.Enabled = True
       TexCompany.Enabled = True
       ComboBoxDay.Enabled = True
       DateTimePicker1.Enabled = True
       ComInformisen.Enabled = True
       TxtHouer.Enabled = True
       TxtNotes.Enabled = True
   End Sub
   Private Sub BtnSave_Click(sender As System.Object, e As System.EventArgs) Handles BtnSave.Click
       If TexCompany.Text.Trim = "" Then
           MsgBox("يحب إدخال اسم الشركة", vbMsgBoxRtlReading + vbCritical, "خطا")
           TexCompany.Focus()
           Exit Sub
       End If
       If ComboBoxDay.SelectedIndex = False Then
           MsgBox("يحب إدخال اليوم", vbMsgBoxRtlReading + vbCritical, "خطا")
           ComboBoxDay.Focus()
           Exit Sub
       End If
       'If DateTimePicker1.Value.Select = False Then
       '    MsgBox("يحب إدخال التاريخ", vbMsgBoxRtlReading + vbCritical, "خطا")
       '    Exit Sub
       'End If
       If ComInformisen.SelectedIndex = False Then
           MsgBox("يحب إدخال معلومات الدوام", vbMsgBoxRtlReading + vbCritical, "خطا")
           ComInformisen.Focus()
           Exit Sub
       End If
       If TxtHouer.Text.Trim = "" Then
           MsgBox("يحب إدخال عدد الساعات", vbMsgBoxRtlReading + vbCritical, "خطا")
           TxtHouer.Focus()
           Exit Sub
       End If
       ''..................كود تاكد من البيانات
       myconn.ds = New DataSet
       myconn.da = New SqlDataAdapter("Select alyowm from woork1 where alyowm = '" & DateTimePicker1.Text & "'", myconn.conn)
       myconn.da.Fill(myconn.ds, "woork1")
       myconn.dv = New DataView(myconn.ds.Tables("woork1"))
       myconn.cur = CType(Me.BindingContext(myconn.dv), CurrencyManager)
       If myconn.cur.Count <> 0 Then
           MsgBox("التاريخ موجود مسبقا", vbMsgBoxRtlReading + vbCritical, "خطا")
           Exit Sub
       End If
       myconn.bbay = ComboBoxDay.SelectedItem.ToString()
       myconn.COMB = ComInformisen.SelectedItem.ToString
       myconn.pos = myconn.dt.Rows.Count
       myconn.saveok = myconn.SQlExicute("insert into woork1 (Name_Company,day,alyowm,informisen,clook,notes) values " & "('" & TexCompany.Text & "','" & myconn.bbay & "','" & DateTimePicker1.Text & "','" & myconn.COMB & "'," & TxtHouer.Text & ",'" & TxtNotes.Text & "')")
       If myconn.saveok = True Then
           MsgBox("تمة عملية الحفظ بنجاح", MsgBoxStyle.Information, "حفظ")
       End If
       myconn.load_data()
       DgvAdd.DataSource = myconn.dv
       BindingContext(myconn.dv).Position = myconn.pos
       myconn.cur = CType(Me.BindingContext(myconn.dv), CurrencyManager)
       myconn.showposition(lbl:=LbAdd)
       myconn.summ(dgv:=DgvAdd, txt:=TexTotal)
       BtnSave.Enabled = False
       TexCompany.Enabled = False
       ComboBoxDay.Enabled = False
       DateTimePicker1.Enabled = False
       ComInformisen.Enabled = False
       TxtHouer.Enabled = False
       TxtNotes.Enabled = False
   End Sub
   Private Sub TxtInformisen_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs)
       If Char.IsControl(e.KeyChar) = False Then
           If Char.IsDigit(e.KeyChar) Then
               e.Handled = True
           End If
       End If
   End Sub
   Private Sub TxtNotes_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles TxtNotes.KeyPress
       If Char.IsControl(e.KeyChar) = False Then
           If Char.IsDigit(e.KeyChar) Then
               e.Handled = True
           End If
       End If
   End Sub
   Private Sub TxtHouer_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles TxtHouer.KeyPress, TxtHouer.KeyPress
       Select Case e.KeyChar
           Case "0"c To "9"c, Chr(Keys.Back)
           Case "."
               'لن نفعل أي شيء.. هذا معناه قبول كتابة هذا الحرف
           Case Else
               Beep()
               e.Handled = True
       End Select
   End Sub
   Private Sub TexCompany_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles TexCompany.KeyPress
       If Char.IsControl(e.KeyChar) = False Then
           If Char.IsDigit(e.KeyChar) Then
               e.Handled = True
           End If
       End If
   End Sub
   Private Sub BinDataAdd()
       Textrecid.DataBindings.Clear()
       TexCompany.DataBindings.Clear()
       ComboBoxDay.DataBindings.Clear()
       DateTimePicker1.DataBindings.Clear()
       ComInformisen.DataBindings.Clear()
       TxtHouer.DataBindings.Clear()
       TxtNotes.DataBindings.Clear()

       Textrecid.DataBindings.Add("text", myconn.dv, "ID")
       TexCompany.DataBindings.Add("text", myconn.dv, "Name_Company")
       ComboBoxDay.DataBindings.Add("text", myconn.dv, "day")
       DateTimePicker1.DataBindings.Add("text", myconn.dv, "alyowm")
       ComInformisen.DataBindings.Add("text", myconn.dv, "informisen")
       TxtHouer.DataBindings.Add("text", myconn.dv, "clook")
       'TxtHouer.Text = Val(myconn.dv(0)("clook")).ToString("0.0")
       TxtHouer.Text = Val(TxtHouer.Text).ToString("0.0")
       TxtNotes.DataBindings.Add("text", myconn.dv, "notes")
   End Sub
   Private Sub BtnExit_Click(sender As System.Object, e As System.EventArgs) Handles BtnExit.Click
       Me.Close()
   End Sub
End Class

وهذة شاشة البحث والتعديل



وهذا الكود المستخدم


كود :
Imports System.Data
Imports System.Data.SqlClient
Public Class FrmEditMohthe
   Dim myconn As New DBCoonnect
   Private Sub FrmEditMohthe_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
       myconn.load_dataMonthe()
       'myconn.load_data("select *from Month_Information")
       DgvEdit.DataSource = Nothing
       Dim coluname() As String = {"الرقم", "الشركة", "التاريخ", " عدد ساعات الاضافي ", "ثمن الاضافي", "الراتب", "الملاحظات"}
       myconn.formatgrd(coluname, DgvEdit)
       myconn.cur = CType(Me.BindingContext(myconn.dv), CurrencyManager)
       myconn.showposition(lbl:=LbEdit)
       myconn.summ(dgv:=DgvEdit, txt:=TexTotal)
       summAddMonMony()
       summAddMonNumper()
       myconn.FormatDGVmonthe(dgv:=DgvEdit)
       BinDataDelet()
       myconn.dateformae(dat:=DTP_pur1)
       BtnEdit.Enabled = False
       TextNameCom.Enabled = False
       DateTimePP.Enabled = False
       TextNumper.Enabled = False
       TextPraes.Enabled = False
       TextSalary.Enabled = False
       TextNotes.Enabled = False
   End Sub
   Private Sub DgvEdit_CellClick(sender As Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DgvEdit.CellClick
       Try
           Dim pos As Integer = Me.DgvEdit.CurrentRow.Index
           Me.Textrecid.Text = DgvEdit.Rows(pos).Cells(0).Value
           Me.TextNameCom.Text = DgvEdit.Rows(pos).Cells(1).Value
           Me.DateTimePP.Text = DgvEdit.Rows(pos).Cells(2).Value
           Me.TextNumper.Text = DgvEdit.Rows(pos).Cells(3).Value
           Me.TextNumper.Text = Val(Me.TextNumper.Text).ToString("0.0")
           Me.TextPraes.Text = DgvEdit.Rows(pos).Cells(4).Value
           Me.TextPraes.Text = Val(Me.TextPraes.Text).ToString("0.0")
           Me.TextSalary.Text = DgvEdit.Rows(pos).Cells(5).Value
           Me.TextSalary.Text = Val(Me.TextSalary.Text).ToString("0.0")
           Me.TextNotes.Text = DgvEdit.Rows(pos).Cells(6).Value
       Catch ex As Exception
           Exit Sub
       End Try
       myconn.showposition(lbl:=LbEdit)
   End Sub
   Private Sub BtnMovePre_Click(sender As Object, e As System.EventArgs) Handles BtnMovePre.Click
       myconn.cur.Position += 1
       myconn.showposition(lbl:=LbEdit)
       Try
           Dim pos As Integer = Me.DgvEdit.CurrentRow.Index
           Me.Textrecid.Text = DgvEdit.Rows(pos).Cells(0).Value
           Me.TextNameCom.Text = DgvEdit.Rows(pos).Cells(1).Value
           Me.DateTimePP.Text = DgvEdit.Rows(pos).Cells(2).Value
           Me.TextNumper.Text = DgvEdit.Rows(pos).Cells(3).Value
           Me.TextNumper.Text = Val(Me.TextNumper.Text).ToString("0.0")
           Me.TextPraes.Text = DgvEdit.Rows(pos).Cells(4).Value
           Me.TextPraes.Text = Val(Me.TextPraes.Text).ToString("0.0")
           Me.TextSalary.Text = DgvEdit.Rows(pos).Cells(5).Value
           Me.TextSalary.Text = Val(Me.TextSalary.Text).ToString("0.0")
           Me.TextNotes.Text = DgvEdit.Rows(pos).Cells(6).Value
       Catch ex As Exception
           Exit Sub
       End Try
   End Sub
   Private Sub BtnMoveLast_Click(sender As Object, e As System.EventArgs) Handles BtnMoveLast.Click
       myconn.cur.Position = 0
       myconn.showposition(lbl:=LbEdit)
       Try
           Dim pos As Integer = Me.DgvEdit.CurrentRow.Index
           Me.Textrecid.Text = DgvEdit.Rows(pos).Cells(0).Value
           Me.TextNameCom.Text = DgvEdit.Rows(pos).Cells(1).Value
           Me.DateTimePP.Text = DgvEdit.Rows(pos).Cells(2).Value
           Me.TextNumper.Text = DgvEdit.Rows(pos).Cells(3).Value
           Me.TextNumper.Text = Val(Me.TextNumper.Text).ToString("0.0")
           Me.TextPraes.Text = DgvEdit.Rows(pos).Cells(4).Value
           Me.TextPraes.Text = Val(Me.TextPraes.Text).ToString("0.0")
           Me.TextSalary.Text = DgvEdit.Rows(pos).Cells(5).Value
           Me.TextSalary.Text = Val(Me.TextSalary.Text).ToString("0.0")
           Me.TextNotes.Text = DgvEdit.Rows(pos).Cells(6).Value
       Catch ex As Exception
           Exit Sub
       End Try
   End Sub
   Private Sub BtnMoveNext_Click(sender As Object, e As System.EventArgs) Handles BtnMoveNext.Click
       myconn.cur.Position -= 1
       myconn.showposition(lbl:=LbEdit)
       Try
           Dim pos As Integer = Me.DgvEdit.CurrentRow.Index
           Me.Textrecid.Text = DgvEdit.Rows(pos).Cells(0).Value
           Me.TextNameCom.Text = DgvEdit.Rows(pos).Cells(1).Value
           Me.DateTimePP.Text = DgvEdit.Rows(pos).Cells(2).Value
           Me.TextNumper.Text = DgvEdit.Rows(pos).Cells(3).Value
           Me.TextNumper.Text = Val(Me.TextNumper.Text).ToString("0.0")
           Me.TextPraes.Text = DgvEdit.Rows(pos).Cells(4).Value
           Me.TextPraes.Text = Val(Me.TextPraes.Text).ToString("0.0")
           Me.TextSalary.Text = DgvEdit.Rows(pos).Cells(5).Value
           Me.TextSalary.Text = Val(Me.TextSalary.Text).ToString("0.0")
           Me.TextNotes.Text = DgvEdit.Rows(pos).Cells(6).Value
       Catch ex As Exception
           Exit Sub
       End Try
   End Sub
   Private Sub BtnMoveFirst_Click(sender As Object, e As System.EventArgs) Handles BtnMoveFirst.Click
       myconn.cur.Position = myconn.cur.Count - 1
       myconn.showposition(lbl:=LbEdit)
       Try
           Dim pos As Integer = Me.DgvEdit.CurrentRow.Index
           Me.Textrecid.Text = DgvEdit.Rows(pos).Cells(0).Value
           Me.TextNameCom.Text = DgvEdit.Rows(pos).Cells(1).Value
           Me.DateTimePP.Text = DgvEdit.Rows(pos).Cells(2).Value
           Me.TextNumper.Text = DgvEdit.Rows(pos).Cells(3).Value
           Me.TextNumper.Text = Val(Me.TextNumper.Text).ToString("0.0")
           Me.TextPraes.Text = DgvEdit.Rows(pos).Cells(4).Value
           Me.TextPraes.Text = Val(Me.TextPraes.Text).ToString("0.0")
           Me.TextSalary.Text = DgvEdit.Rows(pos).Cells(5).Value
           Me.TextSalary.Text = Val(Me.TextSalary.Text).ToString("0.0")
           Me.TextNotes.Text = DgvEdit.Rows(pos).Cells(6).Value
       Catch ex As Exception
           Exit Sub
       End Try
   End Sub
   Private Sub BtnSersh_Click(sender As Object, e As System.EventArgs) Handles BtnSersh.Click
       myconn.dt.Clear()
       myconn.da = New SqlDataAdapter("Select * from Month_Information Where monthe=@d ", myconn.conn)
       myconn.da.SelectCommand.Parameters.AddWithValue("@d", CDate(DTP_pur1.Text))
       myconn.da.Fill(myconn.dt)
       DgvEdit.DataSource = myconn.dv
       If myconn.dt.Rows.Count > 0 Then
           myconn.ID = DgvEdit.CurrentRow.Cells(0).Value
           Textrecid.Text = myconn.dt.Rows(0)(0).ToString
           TextNameCom.Text = myconn.dt.Rows(0)(1).ToString
           DateTimePP.Value = myconn.dt.Rows(0)(2).ToString
           TextNumper.Text = myconn.dt.Rows(0)(3).ToString
           TextNumper.Text = Val(TextNumper.Text).ToString("0.0")
           TextPraes.Text = myconn.dt.Rows(0)(4).ToString
           TextPraes.Text = Val(TextPraes.Text).ToString("0.0")
           TextSalary.Text = myconn.dt.Rows(0)(5).ToString
           TextSalary.Text = Val(TextSalary.Text).ToString("0.0")
           TextNotes.Text = myconn.dt.Rows(0)(6).ToString
           DgvEdit.DataSource = myconn.dv
           myconn.showposition(lbl:=LbEdit)
           myconn.summ(dgv:=DgvEdit, txt:=TexTotal)
           summAddMonMony()
           summAddMonNumper()
           TextNameCom.Enabled = True
           DateTimePP.Enabled = False
           TextNumper.Enabled = True
           TextPraes.Enabled = True
           TextSalary.Enabled = True
           TextNotes.Enabled = True
           BtnSersh.Enabled = True
           BtnEdit.Enabled = True
       Else
           MsgBox("لايوجد بيانات", vbMsgBoxRtlReading + vbCritical, "خطا")
           myconn.ClereAllText(Me)
           myconn.load_dataMonthe()
           'myconn.load_data("select *from Month_Information")
           DgvEdit.DataSource = myconn.dv
           myconn.cur = CType(Me.BindingContext(myconn.dv), CurrencyManager)
           myconn.showposition(lbl:=LbEdit)
           myconn.summ(dgv:=DgvEdit, txt:=TexTotal)
           summAddMonMony()
           summAddMonNumper()
       End If
   End Sub
   Private Sub BtnSershNew_Click(sender As Object, e As System.EventArgs) Handles BtnSershNew.Click
       myconn.load_dataMonthe()
       'myconn.load_data("select *from Month_Information")
       myconn.FormatDGVmonthe(dgv:=DgvEdit)
       TextCompany1.Enabled = True
       TextCompany1.Text = ""
       myconn.dateformae(dat:=DTP_pur1)
       BtnEdit.Enabled = True
       TextNameCom.Enabled = False
       DateTimePP.Enabled = False
       TextNumper.Enabled = False
       TextPraes.Enabled = False
       TextSalary.Enabled = False
       TextNotes.Enabled = False
       DgvEdit.DataSource = myconn.dv
       myconn.summ(dgv:=DgvEdit, txt:=TexTotal)
       summAddMonMony()
       summAddMonNumper()
       myconn.cur = CType(Me.BindingContext(myconn.dv), CurrencyManager)
       BtnSersh.Enabled = True
       myconn.showposition(lbl:=LbEdit)
       BtnEdit.Enabled = False
   End Sub
   Private Sub BtnCompany_Click(sender As System.Object, e As System.EventArgs) Handles BtnCompany.Click
       If myconn.conn.State = ConnectionState.Closed Then
           myconn.conn.Open()
       End If
       If TextCompany1.Text.Trim = "" Then
           MsgBox("ادخل قيمة البحث المطلوبة", vbMsgBoxRtlReading + vbCritical, "ادخال البيانات")
           TextCompany1.Focus()
           Exit Sub
       End If
       myconn.dt.Clear()
       myconn.da = New SqlDataAdapter("Select * from Month_Information Where Name_Company like '%" & TextCompany1.Text.Trim & "%'", myconn.conn)
       myconn.da.Fill(myconn.dt)
       DgvEdit.DataSource = myconn.dv
       If myconn.dt.Rows.Count() > 0 Then
           myconn.ID = DgvEdit.CurrentRow.Cells(0).Value
           Textrecid.Text = myconn.dt.Rows(0)(0).ToString
           TextNameCom.Text = myconn.dt.Rows(0)(1).ToString
           DateTimePP.Value = myconn.dt.Rows(0)(2).ToString
           TextNumper.Text = myconn.dt.Rows(0)(3).ToString
           TextNumper.Text = Val(TextNumper.Text).ToString("0.0")
           TextPraes.Text = myconn.dt.Rows(0)(4).ToString
           TextPraes.Text = Val(TextPraes.Text).ToString("0.0")
           TextSalary.Text = myconn.dt.Rows(0)(5).ToString
           TextSalary.Text = Val(TextSalary.Text).ToString("0.0")
           TextNotes.Text = myconn.dt.Rows(0)(6).ToString
           DgvEdit.DataSource = myconn.dv
           myconn.showposition(lbl:=LbEdit)
           myconn.summ(dgv:=DgvEdit, txt:=TexTotal)
           summAddMonMony()
           summAddMonNumper()
           TextCompany1.Text = ""
           TextCompany1.Enabled = False
           TextNameCom.Enabled = True
           DateTimePP.Enabled = False
           TextNumper.Enabled = True
           TextPraes.Enabled = True
           TextSalary.Enabled = True
           TextNotes.Enabled = True
           BtnEdit.Enabled = True
       Else
           MsgBox("لايوجد بيانات", vbMsgBoxRtlReading + vbCritical, "خطا")
           myconn.load_dataMonthe()
           'myconn.load_data("select *from Month_Information")
           DgvEdit.DataSource = myconn.dv
           myconn.cur = CType(Me.BindingContext(myconn.dv), CurrencyManager)
           myconn.showposition(lbl:=LbEdit)
       End If
   End Sub
   Private Sub BtnEdit_Click(sender As System.Object, e As System.EventArgs) Handles BtnEdit.Click
       Try
           If myconn.conn.State = ConnectionState.Open Then
               myconn.conn.Close()
           End If
           If TextNameCom.Text = "" Then
               MsgBox("الرجاء ادخال  اسم الشركة", MsgBoxStyle.Information + MsgBoxStyle.MsgBoxRight, "حقل إجباري")
               TextNameCom.Focus()
               Exit Sub
           End If
           If TextNumper.Text = "" Then
               MsgBox("الرجاء ادخال  عدد ساعات الاضافي", MsgBoxStyle.Information + MsgBoxStyle.MsgBoxRight, "حقل إجباري")
               Exit Sub
               TextNumper.Focus()
           End If
           If TextPraes.Text = "" Then
               MsgBox("الرجاء ادخال  ثمن الاضافي", MsgBoxStyle.Information + MsgBoxStyle.MsgBoxRight, "حقل إجباري")
               Exit Sub
               TextPraes.Focus()
           End If
           If TextSalary.Text = "" Then
               MsgBox("الرجاء ادخال  الراتب", MsgBoxStyle.Information + MsgBoxStyle.MsgBoxRight, "حقل إجباري")
               Exit Sub
               TextSalary.Focus()
           End If
           Dim updaet As Boolean
           updaet = myconn.SQlExicute("update Month_Information set Name_Company= '" & TextNameCom.Text & "',  monthe= '" & DateTimePP.Text & "', Number_hours= '" & TextNumper.Text & "', price_hours= '" & TextPraes.Text & "', Salary= '" & TextSalary.Text & "' , Notes= '" & TextNotes.Text & "' where ID= '" & Textrecid.Text & "'")
           If updaet = True Then
               MsgBox("تمت عملية التحديث بنجاح", MsgBoxStyle.Information)
               myconn.dt.Clear()
               myconn.da.Fill(myconn.dt)
               DgvEdit.DataSource = myconn.dt
               BindingContext(myconn.dt).Position = myconn.pos
               myconn.cur = CType(Me.BindingContext(myconn.dv), CurrencyManager)
               myconn.showposition(lbl:=LbEdit)
               myconn.summ(dgv:=DgvEdit, txt:=TexTotal)
               summAddMonMony()
               summAddMonNumper()
               BtnEdit.Enabled = False
               TextNameCom.Enabled = False
               DateTimePP.Enabled = False
               TextNumper.Enabled = False
               TextPraes.Enabled = False
               TextSalary.Enabled = False
               TextNotes.Enabled = False
               BtnSersh.Enabled = True
               TextCompany1.Enabled = False
               BtnCompany.Enabled = True
           Else
               MsgBox("خطا في عملية التحديث", MsgBoxStyle.Critical)
               myconn.load_dataMonthe()
               'myconn.load_data("select *from Month_Information")
               DgvEdit.DataSource = myconn.dt
               myconn.summ(dgv:=DgvEdit, txt:=TexTotal)
               summAddMonMony()
               summAddMonNumper()
           End If
       Catch ex As Exception
           MsgBox(ex.Message)
       End Try
   End Sub
   Private Sub FillData()

   End Sub
   Private Sub TextNameCom_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles TextNameCom.KeyPress
     If Char.IsControl(e.KeyChar) = False Then
           If Char.IsDigit(e.KeyChar) Then
               e.Handled = True
           End If
       End If
   End Sub
   Private Sub TextNotes_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles TextNotes.KeyPress
       If Char.IsControl(e.KeyChar) = False Then
           If Char.IsDigit(e.KeyChar) Then
               e.Handled = True
           End If
       End If
   End Sub
   Private Sub TextNumper_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles TextNumper.KeyPress
       Select Case e.KeyChar
           Case "0"c To "9"c, Chr(Keys.Back)
           Case "."
               'لن نفعل أي شيء.. هذا معناه قبول كتابة هذا الحرف
           Case Else
               Beep()
               e.Handled = True
       End Select
   End Sub
   Private Sub TextPraes_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles TextPraes.KeyPress
       Select Case e.KeyChar
           Case "0"c To "9"c, Chr(Keys.Back)
           Case "."
               'لن نفعل أي شيء.. هذا معناه قبول كتابة هذا الحرف
           Case Else
               Beep()
               e.Handled = True
       End Select
   End Sub
   Private Sub TextSalary_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles TextSalary.KeyPress
       Select Case e.KeyChar
           Case "0"c To "9"c, Chr(Keys.Back)
           Case "."
               'لن نفعل أي شيء.. هذا معناه قبول كتابة هذا الحرف
           Case Else
               Beep()
               e.Handled = True
       End Select
   End Sub
   Private Sub BinDataDelet()
       Textrecid.DataBindings.Clear()
       TextNameCom.DataBindings.Clear()
       DateTimePP.DataBindings.Clear()
       TextNumper.DataBindings.Clear()
       TextPraes.DataBindings.Clear()
       TextSalary.DataBindings.Clear()
       TextNotes.DataBindings.Clear()

       Textrecid.DataBindings.Add("text", myconn.dv, "ID")
       TextNameCom.DataBindings.Add("text", myconn.dv, "Name_Company")
       DateTimePP.DataBindings.Add("text", myconn.dv, "monthe")
       TextNumper.DataBindings.Add("text", myconn.dv, "Number_hours")
       'TextNumper.Text = Val(myconn.dv(0)("Number_hours")).ToString("0.0")
       TextNumper.Text = Val(TextNumper.Text).ToString("0.0")
       'TextPraes.Text = Val(myconn.dv(0)("price_hours")).ToString("0.0")
       TextPraes.DataBindings.Add("text", myconn.dv, "price_hours")
       TextPraes.Text = Val(TextPraes.Text).ToString("0.0")
       'TextSalary.Text = Val(myconn.dv(0)("Salary")).ToString("0.0")
       TextSalary.DataBindings.Add("text", myconn.dv, "Salary")
       TextSalary.Text = Val(TextSalary.Text).ToString("0.0")
       TextNotes.DataBindings.Add("text", myconn.dv, "Notes")
   End Sub
   Private Sub summAddMonMony()
       'DgvEdit.DataSource = myconn.dt
       Dim summ As Double = 0
       For i As Integer = 0 To DgvEdit.RowCount - 1
           summ += DgvEdit.Rows(i).Cells(4).Value
       Next
       TextMony.Text = Format(summ, "00.00")
   End Sub
   Private Sub summAddMonNumper()
       'DgvEdit.DataSource = myconn.dt
       Dim summ As Double = 0
       For i As Integer = 0 To DgvEdit.RowCount - 1
           summ += DgvEdit.Rows(i).Cells(3).Value
       Next
       TextNumpert.Text = Format(summ, "00.00")
   End Sub
   Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
       Me.Close()
   End Sub
End Class

صحيح البرنامج يعمل معي دون اي اخطاء لكن عرضت لكم الاكواد 
وكوني مبتديء لنتعلم اي خطا موجود في كتابة هذة الاكواد
تحياتي لكم
الرد }}}
تم الشكر بواسطة: elgokr , elgokr , salah mansour
#2
السلام عليكم ورحمة الله وبركاتة
بانتظار اطلاعكم على الاكواد
ورايكم 
تحياتي لكم
الرد }}}
تم الشكر بواسطة:
#3
السلام عليكم
ما حدا ياخواني القى نظرة على الكود
بانتظاركم
تحياتي لكم
الرد }}}
تم الشكر بواسطة:
#4
السلام عليكم
بالحقيقة مداخلتي ليست لتقييم عملك ولكن للاستفسار منك حول الجملة التالية
PHP كود :
Dim server As Server = New Server(New ServerConnection(conn)) 



الخطا الي يظهرلي هو 
Type 'server' is not defined
يا ريت لو ترفع مشروع الي عملته واكون لك من الشاكرين

تحياتي
الرد }}}
تم الشكر بواسطة: elgokr
#5
(20-09-18, 09:41 PM)ibraheam كتب : السلام عليكم
بالحقيقة مداخلتي ليست لتقييم عملك ولكن للاستفسار منك حول الجملة التالية
PHP كود :
Dim server As Server = New Server(New ServerConnection(conn)) 



الخطا الي يظهرلي هو 
Type 'server' is not defined
يا ريت لو ترفع مشروع الي عملته واكون لك من الشاكرين

تحياتي


وعليكم السلام ورحمة الله وبركاتة
حياك الله اخي الكريم

بالنسبة لاستفسارك اخي
ان لم تظف المكتبات سيظهر خطا ساشرح لك الطريقة
ومعني هذا الخطا
Type 'server' is not defined
انة لم يتم تعريف السيرفر

بالنسبة لهذا الكود 
هذا الكود لانشاء قاعدة البيانات يعني عند تشغيل البرنامج لاول مرة سوف يتم انشاء قاعدة البيانات


كود :
Public Sub createDatabase()
       If check() = False Then
           Try
               Dim sqlConnectionString As String = "Data Source=.\SQLExpress;Integrated Security=True"
               Dim script As String = File.ReadAllText(Application.StartupPath & "\CompanyWork2.sql")
               Dim conn As SqlConnection = New SqlConnection(sqlConnectionString)
               Dim server As Server = New Server(New ServerConnection(conn))
               server.ConnectionContext.ExecuteNonQuery(script)
           Catch ex As Exception
               MessageBox.Show(ex.Message)
           End Try
       End If
   End Sub
وهذا الكود الذي يلية مباشرة للتشييك على اسم قاعدة البيانات ان كانت موجودة او غير موجود
يعني عند تشغيل البرنامج لاول مرة او في اي مرة يتم تشغيل البرنامج ان كانت موجود خلاص وان كانت غير موجودة يتم انشائها

كود :
Private Function check() As Boolean
       Dim exist As Boolean = False
       Try
           Dim conn As SqlConnection = New SqlConnection("Data Source=.\SQLExpress;Integrated Security=True")
           Dim cmd As SqlCommand = New SqlCommand("", conn)
           Dim rdr As SqlDataReader
           cmd.CommandText = "exec sys.sp_databases"
           conn.Open()
           rdr = cmd.ExecuteReader()
           While rdr.Read()
               If rdr.GetString(0) = "Company_2018" Then
                   exist = True
                   Exit While
               End If
           End While
           conn.Close()
           rdr.Dispose()
           cmd.Dispose()
           conn.Dispose()
       Catch ex As Exception
           MessageBox.Show(ex.Message.ToString())
           Return False
       End Try
       Return exist
   End Function

طبعا لكي لا يظهر خطا يجب اضافة المكتبات كالتالي

كود :
Imports Microsoft.SqlServer.Management.Smo
Imports Microsoft.SqlServer.Management.Common

سيطهر خطا بالنسبة للسيرفرر نقوم باضافة المكتبات كالتالي الصور توضح






























هكذا اضفنا المكتبات 
تخياتي لك
الرد }}}
تم الشكر بواسطة: elgokr , elgokr
#6
شكراً على سرعة الرد
هل تقصد تأشير جميع المكتبات كما في الصورة المرفقة من حضرتك ام فقط النطاقين
PHP كود :
Imports Microsoft.SqlServer.Management.Smo
Imports Microsoft
.SqlServer.Management.Common 


اجمل تحية
الرد }}}
تم الشكر بواسطة: elgokr
#7
(20-09-18, 10:48 PM)ibraheam كتب : شكراً على سرعة الرد
هل تقصد تأشير جميع المكتبات كما في الصورة المرفقة من حضرتك ام فقط النطاقين
PHP كود :
Imports Microsoft.SqlServer.Management.Smo
Imports Microsoft
.SqlServer.Management.Common 


اجمل تحية


اهلا اخي انا اشرت على كل شيء 
ويعمل دون اي مشاكل
تحياتي لك
الرد }}}
تم الشكر بواسطة: elgokr
#8
سلمت يداك 
تم حل المشكلة بعد تحديد جميع ملفات ال(dll)

الف شكر .. جمعة مباركة
الرد }}}
تم الشكر بواسطة: elgokr
#9
(20-09-18, 11:54 PM)ibraheam كتب : سلمت يداك 
تم حل المشكلة بعد تحديد جميع ملفات ال(dll)

الف شكر .. جمعة مباركة


اهلا اخي 
جمعة مباركة
حياك الله اخي
تحياتي لك
الرد }}}
تم الشكر بواسطة: elgokr
#10
السلام عليكم
اخواني محتاج ارائكم ونقدكم
تحياتي لكم
الرد }}}
تم الشكر بواسطة: elgokr


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  محتاج طريقة لتنسيق نص الرسالة المرسلة إلى الواتس اب new_programer 2 163 04-03-24, 07:15 AM
آخر رد: new_programer
  كيفية حفظ وتحزيم المشروع وتشغيله كبرنامج علىجميع الاجهزة الرائد 3 1,123 18-02-24, 10:37 PM
آخر رد: الحزين اليماني
  طريقة اجراء نسخة احتياطية و استرجاعها ؟ Osama NY 2 461 07-02-24, 08:59 PM
آخر رد: Kamil
  ما هو اختصار هذه الاكواد justforit 4 450 22-01-24, 03:10 PM
آخر رد: salamandal
  [VB.NET] تحويل المشروع سطح المكتب للعمل على الويب Doby 3 359 13-01-24, 04:22 AM
آخر رد: dr.programming
  ماهي طريقة نقل محتويات checkedlistbox الى داتاقريدفيو صالح عبدالله 3 253 06-01-24, 03:20 PM
آخر رد: Kamil
  [VB.NET] ما هي طريقة استدعاء الازرار في الكيبورد من خلار زر افتراضي haider.mohsin92 1 295 14-12-23, 03:19 PM
آخر رد: Kamil
  طريقة عرض التقرير كريستال ريبورت في جهاز العميل Adel27213 2 347 10-12-23, 04:03 AM
آخر رد: Adel27213
  طريقة إسناد اكثر من جدول للكريستال ريبورت Adel27213 2 353 25-11-23, 11:51 PM
آخر رد: Adel27213
  طريقة تحويل الأرقام إلى حروف Adel27213 2 495 18-11-23, 01:40 AM
آخر رد: sniper2030

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


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