ياشباب ما هو الامر الذي يتحكم بالوصول لأخر صف أو سجل في الجودل عن طريق جملة select
يعني حاجة ذي كدة
كود:
"select * from table where record = last record"
وفي انتظار ردودكم
وشكراا
ياشباب ما هو الامر الذي يتحكم بالوصول لأخر صف أو سجل في الجودل عن طريق جملة select
يعني حاجة ذي كدة
كود:
"select * from table where record = last record"
وفي انتظار ردودكم
وشكراا
كـلـمـا زاد عـلـمـك لـلـشـئ الـمـجـهـول ..... كـلـمـا زاد جـهـلـك لـلـشـئ الـمـعـلـوم
و كـلـمـا زاد جـهـلـك لـلـشـئ الـمـعـلـوم ..... كـلـمـا زاد شـغـفـك لـعـلـم الـمـجـهـول
الــلـــــــهـــــم عـــلـــمـــنــــــي بـــمـــا يـــنــفــعــنــي وانــفــعــنــي بــمــــا عـــلـــمــتــنـــي
للحصول على أخر سجل فى الجدول
"SELECT top 1 * FROM tablename order by key_no DESC "
على اساس ان key_no حقل رئيسى غير متكرر
كل من فى الوجود يطلب صيداً :::: غير ان الشباك مختلفات
تسلم على الرد أخي njd
ولكن أنا لا أستخدم مفتاح رئيسي
هل هكذا لن تعمل حيث أنني قمت بالتجربة الان ولم تعمل (بدون مفتاح رئيسي)
ولا يمكن أنا كتبتها خطأ
كـلـمـا زاد عـلـمـك لـلـشـئ الـمـجـهـول ..... كـلـمـا زاد جـهـلـك لـلـشـئ الـمـعـلـوم
و كـلـمـا زاد جـهـلـك لـلـشـئ الـمـعـلـوم ..... كـلـمـا زاد شـغـفـك لـعـلـم الـمـجـهـول
الــلـــــــهـــــم عـــلـــمـــنــــــي بـــمـــا يـــنــفــعــنــي وانــفــعــنــي بــمــــا عـــلـــمــتــنـــي
أنا في الانتظار.................
كـلـمـا زاد عـلـمـك لـلـشـئ الـمـجـهـول ..... كـلـمـا زاد جـهـلـك لـلـشـئ الـمـعـلـوم
و كـلـمـا زاد جـهـلـك لـلـشـئ الـمـعـلـوم ..... كـلـمـا زاد شـغـفـك لـعـلـم الـمـجـهـول
الــلـــــــهـــــم عـــلـــمـــنــــــي بـــمـــا يـــنــفــعــنــي وانــفــعــنــي بــمــــا عـــلـــمــتــنـــي
أخى DR.Misho
ممكن توضح لى ليه مش مستخدم مفتاح رئيسى ؟ وايه الهدف من الحصول على أخر سجل ؟
علشان نفكر بطريقة تانيه .....!!!!!
ولو كده ممكن تستخدم ال dataset ومنها تحصل على آخر سجل فى الجدول
كل من فى الوجود يطلب صيداً :::: غير ان الشباك مختلفات
أخي الحبيب njd
أنا لا أستخدم مفتاح رئيسي لأنه بيسبب لي مشاكل مع البرنامج حاليا بس بعد ما خلص وكله يبقى تمام أكيد هشتغل بامفتاح الرئيسي .. ممكن يكون كلامي مش منطقي خالص وأنا عارف
بس مش دي المشكلة
وبالنسبة لإيه الهدف من الحصول على أخر سجل كالاتي
أنا هقولك المشكلة اللي خلتني أفكر في هذه الفكرة .... وشوف اذا كان استنتاجي صح ولا خطأ :
الموضوع عبارة عن ان المستخدم عايز يبدأ المسلسل بتاع الحقول برقم معين يضعه في تكست بوكس وبعد ذلك يقوم بادخال البيانات عادي ولكن يأخذ أول سجل في التسلسل الرقم
الذي وضعه في التكست وبعد ذلك يقوم باضافة واحد على السجل التالي ..
بمعنى اخر عبارة عن ترقيم تلقائي ولكن يبدأ بالرقم الذي يحدده المستخدم في التكست بوكس ولكن عندما يقوم المستخدم بكتابة رقم البداية مثلا 10 فيبدأ الترقيم من الرقم 11
وهذه هي المشكلة
أنا لسة لم أصل الى حل...ولكن ان شاء الله سوف أصل الى حل
طبعا انت بتتسائل دلوقتي ايه علاقة اخر سجل بالكلام ده ؟؟؟؟؟
هو ليه علاقة من بعيد اذاي
أنا عايز البرنامج لما يقوم بعملية تحميل البيانات انه يجيب أخر رقم تسلسلي في الجدول وليكن 30 تمام....
وبعدها أقوم بجمع واحد على ال ثلاثين حتى تكون 31 ولكن هذا الرقم وعملية ادخال البيانات سوف تكون في فورم اخر
يعني نقدر نقول بأن الرقم الذي يحدده المستخدم حتى تبدأ عملية الترقيم منه +1 في فورم ال setting
وعمليه ادخال البيانات نفسها في فورم اخر ....تمام
تاني..
أنا محتاج الحصول على اخر سجل علشان أعطي قيمتها للتكست بوكس اللي في فورم ال setting
وبعد كده أجمع عليها واحد واعطي قيمتها للتكست الخاص بتسلسل البيانات للفورم الخاصة بإدخال البيانات
وبعد كده هقوم بجمع واحد أيضا على التكست في فورم ادخال البيانات وأعطيها للتكست في فورم ال setting للحفاظ على ظهور الرقم كما يريد المستخدم أثناء عمل البرنامج
للتوضيح:
سوف أقوم بأخذ قيمة اخر سجل(حقل المسلسل) من الجدول وأضعها في متغير وذلك في الفورم الاولى من البرنامج يعني بعيدا عن فورم ال setting وفورم الادخال الخاصة بالبيانات
وليكن اسمه int_id
وبعد ذلك أقوم بمرير قيمة المتغير int_id الى التكست الخاص ببداية الترقيم في فورم ال سيتينج وليكن اسمه txtid_setting
وأقوم بجمع علية واحد وتمرير قيمته الى التكست بوكس في الفورم الخاصة بادخال البيانات وليكن اسمه txtid_insert حتى يأ خذ القيمة txtid_setting+1 كما يريد
المستخدم
txtid_insert= txtid_setting+1
وبعد الضغط على زر الحفظ
نقوم بتعريف متغير جديد يأخذ القيمة txtid_insert+1 وليكن اسمه int_id2
ونمررها الى التكست بوكس في فورم السيتنج للحفاظ على تحديث البيانات للمستخدم
وهو ده الموضوع كله
ولو انت شايف طريقه تانيه أسهل ولأحسن ياريت تدلني عليها..
لأني لم أقم بتجربة الكلام ده الى الان لأني لم أتطيع الوصول الى أخر سجل وطبعا لسه مش عارف اذاي أخلي الترقيم يبدأ من رقم معين يتم وضعه في التكست بوكس في فروم السيتنج
وفي انتظار ردك
كـلـمـا زاد عـلـمـك لـلـشـئ الـمـجـهـول ..... كـلـمـا زاد جـهـلـك لـلـشـئ الـمـعـلـوم
و كـلـمـا زاد جـهـلـك لـلـشـئ الـمـعـلـوم ..... كـلـمـا زاد شـغـفـك لـعـلـم الـمـجـهـول
الــلـــــــهـــــم عـــلـــمـــنــــــي بـــمـــا يـــنــفــعــنــي وانــفــعــنــي بــمــــا عـــلـــمــتــنـــي
انا تقريباً فهمت قصدك
زى انت ما وصفت لازم يكون عندك مفتاح ما بيتكررش فى الجدول وهو ده المطلوب وهو اللى هيحمل رقم السجل
يعنى لازم يكون Indexed
علشان تحصل على ارقام متسلسلة من الجدول بناء على الرقم الأخير طبعاً ده تفكير منطقى وانا شغال بيه و الطريقة هتكون بال Dataset
هديلك كلاس لملئ ال Dataset وفيه وظائف آخرى كا عملية التعديل والحذف وايضاً فيه وظيفة لملئ ال Datatable لو استخدمته
بس الكلاس مبنى على اساس ال Configuration زى ما اتكلمنا زمان ولو انت عندك الأتصال بطريقة آخرى ممكن تعدل طريقة الأتصال فى الكلاس وها هو الكلاس سميه عندك بنفس الأسم GeneralDataManager
Imports System.Data.SqlClient
Imports System.Configuration
Imports System.Data
Public Class GeneralDataManager
Public Shared Function FillDataSet(ByVal dataSet As DataSet, ByVal queryString As String, ByVal StrTbl As String) As DataSet
Using connection As New SqlConnection(ConfigurationManager.ConnectionStrings("Clinc").ConnectionString)
Dim adapter As New SqlDataAdapter(queryString, connection)
adapter.SelectCommand = New SqlCommand(queryString, connection)
adapter.Fill(dataSet, StrTbl)
Return dataSet
End Using
End Function
Public Shared Sub GeneralFunction(ByVal SqlString As String)
Dim Cmd As New SqlCommand
Using CnGeneral As New SqlConnection(ConfigurationManager.ConnectionStrings("Clinc").ConnectionString)
CnGeneral.Open()
If CnGeneral.State = ConnectionState.Closed Then CnGeneral.Open()
Cmd = CnGeneral.CreateCommand
Cmd.CommandType = CommandType.Text
Cmd.CommandText = SqlString
Cmd.ExecuteNonQuery()
Cmd.Connection.Close()
CnGeneral.Close()
End Using
End Sub
Public Shared Function fillTable(ByVal Dt As DataTable, ByVal queryString As String)
Using connection As New SqlConnection(ConfigurationManager.ConnectionStrings("Clinc").ConnectionString)
Dim adapter As New SqlDataAdapter(queryString, connection)
adapter.SelectCommand = New SqlCommand(queryString, connection)
Dt.Clear()
adapter.Fill(Dt)
Return Dt
End Using
End Function
End Classطبعاً هتغير أسم الأتصال بدل من Clinc للأسم اللى عندك لو كنت بتستخدم ال Configuration
بعد ما تنشئ الكلاس ده تروح على الفورما اللى فيها ال Textbox اللى عاوز تسريل فيه الرقم
وتكتب ال Sub الأتى
Private Sub CreateNo()
Try
Dim stDataset As New DataSet
stDataset.Clear()
Dim SQLgr As String = "SELECT top 1 * FROM company order by Co_No DESC "
stDataset = GeneralDataManager.FillDataSet(stDataset, SQLgr, "company")
If Me.BindingContext(stDataset, "company").Count > 0 Then
TextBox1.Text = (stDataset.Tables("company").Rows(0).Item("Co_No") + 1)
Else
If Trim(Me.TextBox1.Text) = "" Then
TextBox1.Text = 1
End If
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Subوطبعاً عليك تعديل أسم الجدول بدل ما هو company حسب أسم الجدول اللى عندك
وايضاً تعدل أسم الحقل اللى فى الجدول بدل Co_No ليماثل أسم الحقل عندك
ولا تنسى ان يكون هذا الحقل Indexed يعنى غير متكرر
وبعد كده تطلب تنفيذ ال Sub عندك فى الحدث اللى انت مخصصه لجديد كالتالى
CreateNo()
سيتم أدراج رقم سيريال جديد وهو 1 اذ لم يكن هناك بيانات فى الجدول وأذا كان هناك بيانات سيأتى بأخر سجل ويضيف عليه 1
ويمكنك تعديل السيريال بدل من 1 تخليه 10 مثلاً لأول مرة وهو هيسريل بناء على الرقم 10 يزود عليه 1 كل مرة
على العموم جرب وأخبرنى بالنتيجه ...... على فكرة أنا نفسى بستخدم الكود ده للسيريال وشغال معى آخر تمام
كل من فى الوجود يطلب صيداً :::: غير ان الشباك مختلفات
تسلم أخي الغالي ع الكود الرائع ده
وهحاول أحولة لكي يتناسب مع استخدامي
وان شاء الله يشتغل
وهبلغك بالنتيجة بعد الانتهاء ان شاء الله
كـلـمـا زاد عـلـمـك لـلـشـئ الـمـجـهـول ..... كـلـمـا زاد جـهـلـك لـلـشـئ الـمـعـلـوم
و كـلـمـا زاد جـهـلـك لـلـشـئ الـمـعـلـوم ..... كـلـمـا زاد شـغـفـك لـعـلـم الـمـجـهـول
الــلـــــــهـــــم عـــلـــمـــنــــــي بـــمـــا يـــنــفــعــنــي وانــفــعــنــي بــمــــا عـــلـــمــتــنـــي
الكود شغال تمام........
بس في مشكلة واحدة وهي مشكلة غريبة :
أول ما أشغل البرنامج
يظهر الرقم عادي وليكن الرقم 10
المطلوب مني دلوقتي أدخل البيانات ... فقمت بتدخيل البيانات وعند الضغط على زرار الحفظ (أول مرة بعد فتح البرنامج)
الرقم يرجع واحد يعني يبقى 9
ويحفظ في الجدول مع البيانات الرقم 10
وبعد ادخال بيانات اخرى يرجع الرقم 11
ويحفظ في الجدول مع البيانات 11
وهكذا... يعني بيرجع طبيعي بعد ادخال أول رقم من بعد فتح البرنامج
ومش عارف المشكلة فين لأن المشكلو لو في الكود هيفضل يرجع رقم ويقدم رقم بس الموضوع ده ما بيحصلش إلا في أول سجل أقوم بادخاله من بعد عملية فتح البرنامج
وبعد كده بيرجع لوضعه الطبيعي
كـلـمـا زاد عـلـمـك لـلـشـئ الـمـجـهـول ..... كـلـمـا زاد جـهـلـك لـلـشـئ الـمـعـلـوم
و كـلـمـا زاد جـهـلـك لـلـشـئ الـمـعـلـوم ..... كـلـمـا زاد شـغـفـك لـعـلـم الـمـجـهـول
الــلـــــــهـــــم عـــلـــمـــنــــــي بـــمـــا يـــنــفــعــنــي وانــفــعــنــي بــمــــا عـــلـــمــتــنـــي
الكود دلوقتيي بقى تمام...
كان في لخبطة في الاسطر بتاع الكود
والف شكر أخي njd
كـلـمـا زاد عـلـمـك لـلـشـئ الـمـجـهـول ..... كـلـمـا زاد جـهـلـك لـلـشـئ الـمـعـلـوم
و كـلـمـا زاد جـهـلـك لـلـشـئ الـمـعـلـوم ..... كـلـمـا زاد شـغـفـك لـعـلـم الـمـجـهـول
الــلـــــــهـــــم عـــلـــمـــنــــــي بـــمـــا يـــنــفــعــنــي وانــفــعــنــي بــمــــا عـــلـــمــتــنـــي
الحمد لله انه اشتغل كويس ,,,,,, لا شكر على واجب وتحت أمرك
كل من فى الوجود يطلب صيداً :::: غير ان الشباك مختلفات
تسلم أخي الغالي....
وربنا يوفقك
كـلـمـا زاد عـلـمـك لـلـشـئ الـمـجـهـول ..... كـلـمـا زاد جـهـلـك لـلـشـئ الـمـعـلـوم
و كـلـمـا زاد جـهـلـك لـلـشـئ الـمـعـلـوم ..... كـلـمـا زاد شـغـفـك لـعـلـم الـمـجـهـول
الــلـــــــهـــــم عـــلـــمـــنــــــي بـــمـــا يـــنــفــعــنــي وانــفــعــنــي بــمــــا عـــلـــمــتــنـــي
انا حبيت ارد بس للأفادة لأنى عارف يمكن ماتدخلوش الموضوع تانى
انا شغال سى شارب وادو طبعا
وانا شايف انا المشكلة ممكن تتحل بالسيكول
الأمر دة هايجيب اخر سجل
select max(employeeid) from employees
واى حاجة ممكن مراسلتى على الأميل
elostaz_aiman@yahoo.com
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…