19-06-20, 02:59 AM
(19-06-20, 02:02 AM)ابو ليلى كتب : السلام عليكم و رحمة الله و بركاته
الاخ علي عند الاطلاع على مثالك الكود يعمل
هو يعود بعدد السجلات للسنة المحددة (السنة المحددة في الكود هي 1436) و عددها 3 سجلات
و عند تغير السنة الى 1437 يعود باربع سجلات (و هي الموجودة في القاعدة)
و في حال مررنا 1438 كسنة جديدة سيعود لنا بالرقم 1 اي ان هناك سجل واحد للسنة الجديدة و مرد ذلك , بالنظر الى الكود نرى اننا ارجعنا الرقم واحد عند عدم وجود سجلات لذا وجب تغيره الى الرقم صفر كما يلي :
الاصلاح في هذه الجزئية فقطPHP كود :
public int GetMaxHijriID(int hijriYear)
{
try
{
object maxHijriID = null;
using (OleDbCommand comm = new OleDbCommand("SELECT MAX([HijriID]) FROM [tbl] WHERE [HijriYear] = @HijriYear ", con))
{
comm.Parameters.AddWithValue("@HijriYear", hijriYear);
con.Open();
maxHijriID = comm.ExecuteScalar();
con.Close();
}
maxHijriID = (maxHijriID.GetType() == typeof(System.DBNull)) ? 0 : maxHijriID;
return int.Parse(Convert.ToString(maxHijriID));
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return -1;
}
}
PHP كود :
maxHijriID = (maxHijriID.GetType() == typeof(System.DBNull)) ? 0 : maxHijriID;و عند الاستدعاء ستزيد بمقدار واحد لكل سجل جديدكما يلي:PHP كود :
private void Button1_Click(object sender, EventArgs e)
{
int Idnt = cll.GetMaxHijriID(1438)+1;
MessageBox.Show(Idnt.ToString());
}
غير ذلك انا لا ارى مشكلة في الكودالا اذا كان طلبك شيئ مغاير لما فهمته؟؟حاول ان تقرأ الكود و تتعلم منه
الف شكر ياستاذي بس ممكن اذا ما عليك امر تعدل على المثال المرفق عند كل حفظ السجل يزيد
وذلك لكي يستفيد الجميع من هاذا الموضوع
