17-11-21, 09:42 AM (آخر تعديل لهذه المشاركة : 17-11-21, 10:01 AM {2} بواسطة سعود.)
المثال مرفق
PHP كود :
Imports System.ComponentModel
Public Class Form1 Dim fpath As String = IO.Path.GetDirectoryName(Application.ExecutablePath) Dim str As String = "provider=microsoft.ace.oledb.12.0;data source=" & fpath & "\db.accdb" Dim con As New OleDb.OleDbConnection(str) Dim cm As New OleDb.OleDbCommand Dim dt As New DataTable Private Sub gd() dt.Clear() cm.Parameters.Clear() DataGridView1.DataSource = Nothing cm.Connection = con cm.CommandText = "select * from tb" If con.State = ConnectionState.Closed Then con.Open() dt.Load(cm.ExecuteReader) If con.State = ConnectionState.Open Then con.Close() DataGridView1.DataSource = dt DataGridView1.Columns(0).Width = "100" DataGridView1.Columns(0).HeaderText = "الرقم" DataGridView1.Columns(1).Width = "150" DataGridView1.Columns(1).HeaderText = "الاسم" DataGridView1.Columns(2).Width = "100" DataGridView1.Columns(2).HeaderText = "العمود الترقيم المخصص" End Sub Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load gd() End Sub Private Function GetNewNumber() As Integer cm.Parameters.Clear() Dim n As Integer = 0 cm.CommandText = "select max(n) from tb" If IsDBNull(cm.ExecuteScalar) Then Return n Else n = cm.ExecuteScalar End If Return n End Function Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click If con.State = ConnectionState.Closed Then con.Open() txtn.Text = (GetNewNumber() + 1) If con.State = ConnectionState.Open Then con.Close() End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click cm.Parameters.Clear() cm.CommandText = "insert into tb(tname,n) values(@tname,@n)" cm.Parameters.AddWithValue("@tname", txtname.Text) cm.Parameters.AddWithValue("@n", txtn.Text) If con.State = ConnectionState.Closed Then con.Open() cm.ExecuteNonQuery() If con.State = ConnectionState.Open Then con.Close() gd() End Sub Private Sub Form1_Closing(sender As Object, e As CancelEventArgs) Handles Me.Closing If con.State = ConnectionState.Open Then con.Close() End Sub End Class
Public Class Form1 Dim fpath As String = IO.Path.GetDirectoryName(Application.ExecutablePath) Dim str As String = "provider=microsoft.ace.oledb.12.0;data source=" & fpath & "\db.accdb" Dim con As New OleDb.OleDbConnection(str) Dim cm As New OleDb.OleDbCommand Dim dt As New DataTable Private Sub gd() dt.Clear() cm.Parameters.Clear() DataGridView1.DataSource = Nothing cm.Connection = con cm.CommandText = "select * from tb" If con.State = ConnectionState.Closed Then con.Open() dt.Load(cm.ExecuteReader) If con.State = ConnectionState.Open Then con.Close() DataGridView1.DataSource = dt DataGridView1.Columns(0).Width = "100" DataGridView1.Columns(0).HeaderText = "الرقم" DataGridView1.Columns(1).Width = "150" DataGridView1.Columns(1).HeaderText = "الاسم" DataGridView1.Columns(2).Width = "100" DataGridView1.Columns(2).HeaderText = "العمود الترقيم المخصص" End Sub Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load gd() End Sub Private Function GetNewNumber() As Integer cm.Parameters.Clear() Dim n As Integer = 0 cm.CommandText = "select max(n) from tb" If IsDBNull(cm.ExecuteScalar) Then Return n Else n = cm.ExecuteScalar End If Return n End Function Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click If con.State = ConnectionState.Closed Then con.Open() txtn.Text = (GetNewNumber() + 1) If con.State = ConnectionState.Open Then con.Close() End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click cm.Parameters.Clear() cm.CommandText = "insert into tb(tname,n) values(@tname,@n)" cm.Parameters.AddWithValue("@tname", txtname.Text) cm.Parameters.AddWithValue("@n", txtn.Text) If con.State = ConnectionState.Closed Then con.Open() cm.ExecuteNonQuery() If con.State = ConnectionState.Open Then con.Close() gd() End Sub Private Sub Form1_Closing(sender As Object, e As CancelEventArgs) Handles Me.Closing If con.State = ConnectionState.Open Then con.Close() End Sub End Class
مشكور اخي سعود لكن الذي اريد بتنسيق هذا 001-002
نوع الحقل سوف يكون نص لكي يقبل الشرطة الفاصلة بين الرقمين
طبعا الرقم 001-002 هو يمثل جزئين
الجز الاول رقم المجموعة و الجز الثاني يمثل رقم الطالب
اريد الزيادة في رقم الطالب في الجز الثاني فقط
الكود الاول شغال بس عند اضافة الشرطة الفاصله بين الجزئين يظهر خطاء
17-11-21, 07:21 PM (آخر تعديل لهذه المشاركة : 17-11-21, 07:34 PM {2} بواسطة سعود.)
إقتباس :الجز الاول رقم المجموعة و الجز الثاني يمثل رقم الطالب
كنت اريد ان اتحدث عن هذا ولدي فكرتي الخاصة لكن كنت انتظر لعل احد لديه حل اكثر جدية مما لدي.
ممكن نضع حقل لكل مجموعة وتكون نصية اما الحقل الرقمي اللذي يحتاج زيادة نجعله من نوع رقم.
وهكذا نحل المشكلة.
اذا لم تتضح ممكن اطبق الفكرة بمثال آخر وارفعه مجددا.
17-11-21, 07:42 PM (آخر تعديل لهذه المشاركة : 17-11-21, 07:59 PM {2} بواسطة غدير الصليحي.)
(17-11-21, 07:21 PM)سعود كتب :
إقتباس :الجز الاول رقم المجموعة و الجز الثاني يمثل رقم الطالب
كنت اريد ان اتحدث عن هذا ولدي فكرتي الخاصة لكن كنت انتظر لعل احد لديه حل اكثر جدية مما لدي.
ممكن نضع حقل لكل مجموعة وتكون نصية اما الحقل الرقمي اللذي يحتاج زيادة نجعله من نوع رقم.
وهكذا نحل المشكلة.
اذا لم تتضح ممكن اطبق الفكرة بمثال آخر وارفعه مجددا.
يا حبذا مثال مرفق
لو نستخدم الاستعلام max
بعد ذالك في اللغة نفسها نعرف متغير نوع نص
ثم نعمل على بحث في المتغير على الفاصله ( - )
ثم نعمل على زيادة بمقدار واحد من بعد المفاصله في متغير جديد
او عمل فصل الرقم في متغير جديد
ثم نعمل على تجميع القيمة الجديدة مع الفاصله
هل نستطيع ان نطبق الفكره
Public Class Form1 Dim n As Integer = 0 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click n += 1 t2.Text = t1.Text.Split("-")(0) & "-" & n.ToString("000") End Sub Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load n = Val(t1.Text.Split("-")(1)) End Sub End Class
Public Class Form1 Dim n As Integer = 0 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click n += 1 t2.Text = t1.Text.Split("-")(0) & "-" & n.ToString("000") End Sub Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load n = Val(t1.Text.Split("-")(1)) End Sub End Class
Public Class Form1 Dim n As Integer = 0 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click n += 1 t2.Text = t1.Text.Split("-")(0) & "-" & n.ToString("000") End Sub Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load n = Val(t1.Text.Split("-")(1)) End Sub End Class
بعد ان ناخذ النص من الجدول نجري عليه هذه الاكواد
لو ترسل المرفق افصل لو سمحت
المثال هذا من دون قاعدة بيانات.
لكن اشوف المثال الموجود واحدثه ان شاء الله تعالى.
Public Class Form1 Dim n As Integer = 0 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click n += 1 t2.Text = t1.Text.Split("-")(0) & "-" & n.ToString("000") End Sub Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load n = Val(t1.Text.Split("-")(1)) End Sub End Class
بعد ان ناخذ النص من الجدول نجري عليه هذه الاكواد
لو ترسل المرفق افصل لو سمحت
المثال هذا من دون قاعدة بيانات.
لكن اشوف المثال الموجود واحدثه ان شاء الله تعالى.
اشكرك اخي سعود طريقتك ناجحة مية مية
لقد جربت من خلال بتون بهذ الكود
كود :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim n As Integer = 0
n = Val(TextBox1.Text.Split("-")(1))
n += 1
TextBox2.Text = TextBox1.Text.Split("-")(0) & "-" & n.ToString("000")
End Sub
وكانت ادخل اي رقم بنفس التنسيق السابق و تظهر النتيجة صحيحه