الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مساعدة بخصوص تسلسل البيانات فى حالة عدة مستخدمين

بدأه weli583 في 20 فبراير 2014 · 3 رد · 408 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

 

اخوانى ارجو المساعدة بخصوص

---------------------------------

 

قمت باانشاء برنامج مخازن يضم الموردين والعملاء و و و و والحمد لله انتهيت منه لكن اكتشفت ان تسلسل الففواتير او الموردين او العملاء يمكن ان يحدث به تكرار عندما يقوم المستخدم بعمل اضافة والمستخدم الاخر فى نفس الشبكه لنفس البرنامج يعمل اضافة يصبح التسلسل عندهم 1 لكلا المستخدمين وللاسف المشكله لا تتوقف هنا ولكن عند الحفظ يتم الحفظ لااكثر من فاتورة او مورد بنفس التسلسل

 

ارجو الحل !!!  وخاصه انا لى رغبه ان برنامجى يعمل على شبكه واكثر من مستخدم بدون اى مشاكل وخاصه انه خطىء بسيط لكن حله ليس سهلا

 

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

 

 

وشكرا

#2

هل رقم الفاتورة او الرقم التسلسلى ذو نمط معين ويتم توليده تلقائى ام مجرد تسلسل هكذا 1.2.3...الخ

يوجد نوع بيانات فى قواعد البيانات لادراج رقم تسلسلى وفى هذه الحاله لن يحدث تكرار

 

حول Invoice Numberالى  PK وهذا يمنع تكرار...

قم بفحص رقم الفاتورة قبل الاضافة اذا كان موجود ويفضل استخدام الاجراءات المخزنة  << مجرد مثال وهو يعود لطبيعه قاعدة البيانات لديك والتطبيق Business logic

ALTER PROCEDURE [dbo].[usp_Insert]
	-- Add the parameters for the stored procedure here
	@InvoceID nvarchar(10),
@InvoceDateDate datetime,
@Coustomer nvarchar(100),
@Total decimal(18,3),

@Chik nvarchar(10),

AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
if exists(SELECT null FROM Invoices WHERE InvoceID=@InvoceID )
RETURN 2;
    -- Insert statements for procedure here
INSERT INTO Invoces(InvoceID,InvoceDate,Coustomer,Chik,Total)VALUES(@InvoceID,@InvoceDate,@Coustomer,@Chik,@Total)
if @@rowcount=1
return 1;
return 3;	
END

تم تعديل هذه المشاركة بواسطة SOLO.NET في 21 فبراير 2014 في 03:06

1

VB.NET and C# Comparison

http://www.harding.edu/fmccown/vbnet_csharp_comparison.html

002.gif

=-=-=-=-=-=-=
ذو العلم يشقى فى النعيم بعلمه .:. واخو الجهالة فى الشقاوة ينعم
=-=-=-=-=-=-=
يا من بدنياه اشتغل . قد غره طول الأمل . فالموت يأتى بغتة . والقبر صندوق العمل
=-=-=-=-=-=-=
ان لم تستطع ان تجد ما تفعله فافعل ما لم تسطع ان تجده

screen_shot_2011-05-19_at_12.44.49_pm.pn

#3

اخ solo.net 

رقم التسلسل للفواتير 1 -2 - 3 - 4   وهكذا

------------------------------------------------

بالنسبة (يوجد نوع بيانات فى قواعد البيانات لادراج رقم تسلسلى وفى هذه الحاله لن يحدث تكرار) ليست عملية بالمرة لاانك لما بتبحث عن رقم الفاتورة بتبحث بالرقم التسلسلى لحقل تسلسل الفاتورة صعب افهمك قصدى لكن ليست عملية

 

بالنسبة (حول Invoice Numberالى  PK وهذا يمنع تكرار... ) كلامك صحيح ودة نصف الحل لكن عندى بالبرنامج اذا وجد رقم الفاتورة مدخلة المستخدم الاخر يسئله البرنامج هل تريد تعديل الفاتورة ؟؟

بمعنى اصح وتوضيح اكثر

قام المستخدم الاول بعمل اضافة ظهر له تسلسل الفاتورة رقم 1 وانتظر ولم يدخل الفاتورة

قام المستخدم رقم 2 بعمل اضافة ظهر له التسلسل الفاتورة رقم 1 ولكن هنا قام باادخال فاتورة وقام بالحفظ واصبح فى البرنامج فى جدول بيانات الفواتير فاتورة رقم 1 وبياناتها

نرجع للمستخدم رقم 1 قام بادخال بيانات فى فورم الفاتورة واراد الحفظ يبحث البرنامج فيجد ان الفاتورة رقم 1 مدخله فيسئله هل تريد التعديل ؟؟؟ وهنا الخطا انا اريد البرنامج يقوم بالحفظ مع تسلسل جديد

هتقولى اعمل تسلسل جديد عند كل حفظ هقولك تمام لكن لنفرض المستخدم يحتاج لتعديل الفاتورة وليس الحفظ ؟؟؟؟؟؟

عرفت انا فى مشكله تافه لكن صعب حلها

لكن سوف اكمل على كلامك واحاول احل المشكله دى

--------------------

فى حل لكنه متعب وهو عمل زرار للحفظ وزرار اخر للتعديل !!!!!! 

 

 

تحياتى لك

 

----------------

 

تم حل المشكله 

اولا عمل الحقل التسلسل pk

ثانيا فصل زرار الاضافه عند زرار التعديل " شر لابد منه "

 

-----------------------

تم تعديل هذه المشاركة بواسطة weli583 في 21 فبراير 2014 في 13:10

#4

بمكن عمل فكره بسيطه عن عمل سجل جديد يكون الكود هذا يعني انه سجل جديد اما اذا ما رقم غير الصفر فذا يعني تعديل ويكون حقل اساسي وترقيم تلقائي

 

بالتوفيق

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…