PDA

View Full Version : حرفه ای: جابجا شدن اطلاعات رکوردها با همدیگر در زمان ویرایش



soha_smb
یک شنبه 24 فروردین 1393, 07:44 صبح
سلام
من به برنامه تحت وب دارم (البته تو شبکه کار می کنه )
فرض کنید چند کاربر همزمان در حال استفاده از سیستم می باشند، حالا یک کاربر1 در حال ویرایش اطلاعات یک رکورد هست و یه کاربر دیگه (کاربر2) هم داره تو همون صفحه رو اطلاعات یه رکورد دیگه کار میکنه حالا وقتی که کاربر1 اطلاعات رو ویرایش میکنه اطلاعات رکوردی که کاربر1 داشته روش کار میکرده میره میشینه روی رکوردی که کاربر2 داشته روش کار میکرده و همه رو بهم میریزه:متفکر::متفکر:
این کد ویرایشمه.

SqlConnection con;
SqlCommand cmd;
public static string personid;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
personid = Request.QueryString["id"];
}
}
protected void BtnSave_Click(object sender, EventArgs e)
{
int userid = Convert.ToInt32(Public.GetUserID(Page.User.Identit y.Name));
int NumberA; if (txt_NumberA.Text == "") NumberA = 0; else NumberA = int.Parse(txt_NumberA.Text);
int retval = BLL.Record.AddRecord
(
1,
int.Parse(personid),
Boolean.Parse(drd_Type.SelectedValue),
txt_HokmNumber.Text,
DatePicker_HokmDate.EnDate,
int.Parse(drd_subjectrecord.SelectedValue),
DatePicker_datestart.EnDate,
DatePicker_dateend.EnDate,
int.Parse(drd_branch_unit_IDStart.SelectedValue),
int.Parse(drd_post.SelectedValue),
int.Parse(drd_JayegahJobID.SelectedValue),
int.Parse(drd_GroupJob.SelectedValue),
NumberA,
txt_Desc.Text,
false,
userid,
0
);
if (retval == 0)
{
clear();
Grid_Manage.DataBind();
lbl_msg.Visible = true;
lbl_msg.Text = "آیتم مورد نظر با موفقیت ثبت گردید.";
}
else
{
lbl_msg.Visible = true;
lbl_msg.Text = "خطایی در عملیات ثبت رخ داده است ،لطفا با مدیریت تماس بگیرید.";
}
}

Mag-Mag
یک شنبه 24 فروردین 1393, 15:48 عصر
شما اختمال زیاد ضعف در تحلبل و ایحاد بانک اطلاعاتی و ساختار جداولت داری
مثال :
در کل من بعنوان معاون مثلا یک رکورد رو باز می کنم و مثلا چند فیلدش رو تغییر می دم
حالا مدیر در همون لحظه همون رکورد رو باز کرده و تعییر می ده
در حر صورت کسی که اخرین بار دکمه ویرایش رو بزنه اطلاعات به شکلی که اون تغییر داده ثبت میشه.

حالا اگر واقعا مهمه که همچین چیزی پیش نیاد یک راه بیشتر نداری
در زمانی که اطلاعات می ره واسه بروز رسانی (همون ویرایش)
شما می بایست برای اون رکورد مقدار یک فیلد رو مثلا یکنی true
یعتی در جدولت یک فیلد اضافه می کنی مثلا به نام IsUse
وقتی یکی این رکورد رو باز می کنه اینو True کن

حالا قبل از باز کزدن رکورد (یا همون ویرایش کردن) چک کن اگر IsUse==True هست به کاربر بگو نمی تونی فعلا ویرایش کنی این رکورد رو

وقتی هم ویرایش اتجام شد مقدار IsUse رو False کن

به همین سادگی