نمایش نتایج 1 تا 18 از 18

نام تاپیک: جدول فاکتور و زیرفاکتور در دیتابیس

  1. #1
    کاربر دائمی آواتار samiasoft
    تاریخ عضویت
    مهر 1391
    محل زندگی
    اردبیل
    پست
    1,242

    Question جدول فاکتور و زیرفاکتور در دیتابیس

    سلام دوستان

    سوالاتی که داشتم این هستش که :

    وقتی کاربر کالاها را انتخاب و در دیتاگرید اضافه میکند

    ایا همان لحظه که کالا رو اضافه میکند در دیتابیس هم ذخیره کنیم ؟


    یا در اخر کار که کلیه کالاها را در دیتاگرید اضافه کرد بیاییم کل دیتاگرید رو بریزیم داخل دیتابیس؟

    کدوم حالت رو پیشنهاد میکنید ؟

  2. #2
    مدیر بخش آواتار محمد رضا فاتحی
    تاریخ عضویت
    مهر 1387
    محل زندگی
    کهنسالترین موجود زنده در شهر منه
    پست
    1,181

    نقل قول: جدول فاکتور و زیرفاکتور در دیتابیس

    سلام بهتره ابتدا اقلام فاکتور در دیتاگریدتون ثبت بشه تا کاربر بتونه به راحتی اونها رو تغییر بده و بعد از تکمیل و تاییدش در دیتابیس ذخیره بشه
    یک نقطه بیشتر فرق بین رحیم و رجیم نیست...از نقطه ای بترس که شیطانیت می کند

    ________________________

  3. #3
    مدیر بخش آواتار danialafshari
    تاریخ عضویت
    تیر 1387
    محل زندگی
    هر کجا هستم باشم آسمان مال من است
    پست
    2,909

    نقل قول: جدول فاکتور و زیرفاکتور در دیتابیس

    با سلام
    با اجازه از آقای فاتحی
    فکر میکنم منظور ایشون این هست که کالاها در جدول مربوطه ذخیره هستند و بحث سر زیر فاکتور هست
    به نظر من بهتره زیر فاکتور کامل وارد شود بعد همه با هم در جدول ذخیره شوند چون ممکنه در حین نوشتن فاکتور موردی اشتباه شود و یا کلاً فاکتور کنسل شود
    موفق باشید
    لطفاً از پرسیدن سوال در خصوصی خودداری کنید.
    قبل از ایجاد تاپیک، حتماً قوانین سایت را مطالعه فرمایید.
    قوانین پرسش های دانشجویی
    برای درست وارد شدن کد در قالب C#‎‎‎ سایت، ابتدا کد رو درون Notepad.exe کپی سپس از اونجا به سایت در قالب C#‎‎‎ منتفل کنید
    نرم افزار code manager دستیار برنامه نویسان جهت نگهداری کد ها

  4. #4
    کاربر دائمی آواتار samiasoft
    تاریخ عضویت
    مهر 1391
    محل زندگی
    اردبیل
    پست
    1,242

    نقل قول: جدول فاکتور و زیرفاکتور در دیتابیس

    نقل قول نوشته شده توسط محمد رضا فاتحی مشاهده تاپیک
    سلام بهتره ابتدا اقلام فاکتور در دیتاگریدتون ثبت بشه تا کاربر بتونه به راحتی اونها رو تغییر بده و بعد از تکمیل و تاییدش در دیتابیس ذخیره بشه
    ممنونم از توجهتون.

    درواقع منم همینکارو کردم ابتدا با دستور rows add خود دیتاگرید اطلاعات را داخل دیتاگرید ریختم....حال مساله ای که مواجه هستم اینه که من برای گزارش گیری از همان دیتاگرید میخواستم دیتاسورس اونو به گزارش ارتباط بدم...اما در این حالت دیتاسورس خالی هست...حال چطوری این اطلاعاتی که داخل دیتاگرید ریختم به دیتاسورس تبدیل کنم تا بتونم ازش گزارش بگیرم؟


    و سوال دیگر اینکه
    من میخواستم در جدول فاکتور شماره فاکتور ماکزیمم رو پیدا کنم و اگر نبود یه مقدار بهش اضافه کنم برای همین دستور زیر رو نوشتم اما خطا میاد :
    var fid = database.Tbl_Factor.SqlQuery("SELECT (MAX(factor_id),0)+1 FROM Tbl_Factor").ToList();             


    txt_factor_id.Text = fid.ToString();

    البته اگر کمک کنید اینو با خود دستورات linq بنویسیم بهتر میشود

  5. #5

    نقل قول: جدول فاکتور و زیرفاکتور در دیتابیس

    نقل قول نوشته شده توسط samiasoft مشاهده تاپیک
    سوال دیگر اینکه
    من میخواستم در جدول فاکتور شماره فاکتور ماکزیمم رو پیدا کنم و اگر نبود یه مقدار بهش اضافه کنم برای همین دستور زیر رو نوشتم اما خطا میاد :
    var fid = database.Tbl_Factor.SqlQuery("SELECT (MAX(factor_id),0)+1 FROM Tbl_Factor").ToList();             


    txt_factor_id.Text = fid.ToString();

    البته اگر کمک کنید اینو با خود دستورات linq بنویسیم بهتر میشود
    var fid = database.Tbl_Factor.OrderByDescending(f=>f.factor_  id).FirstOrDefault().factor_id + 1;


  6. #6
    کاربر دائمی آواتار samiasoft
    تاریخ عضویت
    مهر 1391
    محل زندگی
    اردبیل
    پست
    1,242

    نقل قول: جدول فاکتور و زیرفاکتور در دیتابیس

    ممنون از شما دوستان بابت راهنمایی

    اما من هنوز در این مورد موندم که چگونه اطلاعات موجود در دیتاگرید رو داخل دیتابیس ذخیره کنم؟

    ایا بایستی بیاییم حلقه بزاریم که یکی یکی اطلاعات ردیف های دیتاگرید در دیتابیس ذخیره بشه ؟ یا راه دیگری هم وجود داره؟

    روش اتصال به دیتابیس بصورت انتیتی فریمورک هستش.

  7. #7

    نقل قول: جدول فاکتور و زیرفاکتور در دیتابیس

    بله باید حلقه بذارین و اقلام رو تو دیتابیس درج کنین

  8. #8
    کاربر دائمی آواتار samiasoft
    تاریخ عضویت
    مهر 1391
    محل زندگی
    اردبیل
    پست
    1,242

    نقل قول: جدول فاکتور و زیرفاکتور در دیتابیس

    دوستان چگونه فاکتورهای ذخیره شده در دیتابیس را در یک محدوده تاریخ را حذف کنیم؟

    جدول دیتابیس فاکتور و زیرفاکتور بدین صورته :

    اگر بیاییم کوئری زیر رو بنویسیم با خطا مواجه خواهیم شد چون ابتدا بایستی زیرفاکتورهای مربوطه حذف شوند

       sqlQuery = database.Database.ExecuteSqlCommand("delete from Tbl_Factor where date_submit>=@p0 AND date_submit<=@p1", fromDate, untilDate);




    حال به نظرتون چگونه بایستی دستور حذف زیرفاکتور و بعد فاکتور رو بنویسیم ؟

    فکر میکنم اینطور باید عمل کرد که ابتدا در جدول فاکتور اون فاکتورهایی که در اون محدوده تاریخ هستند را فاکتورایدیشون رو پیدا کرد سپس برحسب فاکتور ایدی بیاییم از جدول زیرفاکتور رکوردهارو حذف کنیم سپس از جدول فاکتور رکوردها رو حذف کنیم....اما نتونستم دستورشو بنویسیم

  9. #9

    نقل قول: جدول فاکتور و زیرفاکتور در دیتابیس

    تا جایی که من کار کردم، همونطور که حدس زدی باید توسط دو کوئری حذف کنی، این دوتا کوئری رو پشت سر هم توی ExecuteSqlCommand بذار:
    DELETE FROM Tbl_ZirFactor WHERE factor_id_fk IN (SELECT factor_id FROM Tbl_Factor WHERE date_submit >= @p0 AND date_submit <= @p1)
    DELETE FROM Tbl_Factor WHERE date_submit >= @p0 AND date_submit <= @p1

    اما چرا توسط sql query؟ شما که داری از EF استفاده میکنی، چرا از ling to entity استفاده نمیکنی؟ شما که داری همه کوئری هاتو با دستورات sql میزنی، خب اگه اینطوره چرا رفتی سمت EF؟ ما از EF استفاده میکنیم چون سرعت کدنویسی رو بیشتر میکنه، اگه قرار باشه همه کوئری ها با سینتکس Sql باشن وقتت رو روی این دستورات تلف کنی که دیگه استفاده از EF معنی نداره
    آخرین ویرایش به وسیله mr.sirwan : شنبه 12 اسفند 1396 در 22:05 عصر

  10. #10
    کاربر دائمی آواتار samiasoft
    تاریخ عضویت
    مهر 1391
    محل زندگی
    اردبیل
    پست
    1,242

    نقل قول: جدول فاکتور و زیرفاکتور در دیتابیس

    نقل قول نوشته شده توسط mr.sirwan مشاهده تاپیک
    تا جایی که من کار کردم، همونطور که حدس زدی باید توسط دو کوئری حذف کنی، این دوتا کوئری رو پشت سر هم توی ExecuteSqlCommand بذار:
    DELETE FROM Tbl_ZirFactor WHERE factor_id_fk IN (SELECT factor_id FROM Tbl_Factor WHERE date_submit >= @p0 AND date_submit <= @p1)
    DELETE FROM Tbl_Factor WHERE date_submit >= @p0 AND date_submit <= @p1

    اما چرا توسط sql query؟ شما که داری از EF استفاده میکنی، چرا از ling to entity استفاده نمیکنی؟ شما که داری همه کوئری هاتو با دستورات sql میزنی، خب اگه اینطوره چرا رفتی سمت EF؟ ما از EF استفاده میکنیم چون سرعت کدنویسی رو بیشتر میکنه، اگه قرار باشه همه کوئری ها با سینتکس Sql باشن وقتت رو روی این دستورات تلف کنی که دیگه استفاده از EF معنی نداره
    سپاسگزارم بابت راهنماییتون...بله در مورد دستورات حق با شماست بایستی تغییربدم.

    فقط یه موردی هم برام مبهم هست این هست که :

    اگر ما بخواهیم اماری از کالاهای فروخته شده را بدست بیاریم کدوم حالت زیر رو توصیه میکنید :

    1- اینکه بیاییم از روی فاکتورهای ثبت شده یک کوئری بزنیم و تعداد کالاهای فروخته شده رو بدست بیاوریم.

    2- یا اینکه در جدول کالاها یک ستونی درکنار موجودی بنام ستون فروخته شده داشته باشیم و از روی ان تعداد کالاهای فروخته شده روبدست بیاوریم.

    یا اینکه نه راه دیگری رو پیشنهاد میکنید؟

  11. #11

    نقل قول: جدول فاکتور و زیرفاکتور در دیتابیس

    نقل قول نوشته شده توسط samiasoft مشاهده تاپیک
    سپاسگزارم بابت راهنماییتون...بله در مورد دستورات حق با شماست بایستی تغییربدم.

    فقط یه موردی هم برام مبهم هست این هست که :

    اگر ما بخواهیم اماری از کالاهای فروخته شده را بدست بیاریم کدوم حالت زیر رو توصیه میکنید :

    1- اینکه بیاییم از روی فاکتورهای ثبت شده یک کوئری بزنیم و تعداد کالاهای فروخته شده رو بدست بیاوریم.

    2- یا اینکه در جدول کالاها یک ستونی درکنار موجودی بنام ستون فروخته شده داشته باشیم و از روی ان تعداد کالاهای فروخته شده روبدست بیاوریم.

    یا اینکه نه راه دیگری رو پیشنهاد میکنید؟
    به نظرم یه فیلد جدید توی جدول کالا ها بذارین بهتره، چون اگه بخوایم از روش اول استفاده کنیم به مرور زمان که داده های جدول فاکتور افزایش پیدا میکنن، محاسبه تعداد کالاهای فروخته شده زمان بر خواهد شد و پرفورمنس پایین میاد
    حالا ببینیم نظر دوستان چیه

  12. #12
    کاربر دائمی آواتار samiasoft
    تاریخ عضویت
    مهر 1391
    محل زندگی
    اردبیل
    پست
    1,242

    نقل قول: جدول فاکتور و زیرفاکتور در دیتابیس

    نقل قول نوشته شده توسط mr.sirwan مشاهده تاپیک
    به نظرم یه فیلد جدید توی جدول کالا ها بذارین بهتره، چون اگه بخوایم از روش اول استفاده کنیم به مرور زمان که داده های جدول فاکتور افزایش پیدا میکنن، محاسبه تعداد کالاهای فروخته شده زمان بر خواهد شد و پرفورمنس پایین میاد
    حالا ببینیم نظر دوستان چیه

    پس اگر حالت دوم را پیش بریم بایستی وقتی کالایی در فاکتور اضافه شد همان تعداد از موجودی کم شود و در ستون فروخته شده اضافه شود .

    اما کی اینکارو انجام بدیم؟

    چون من وقتی کل کالاها در دیتاگرید اضافه کردم در اخرکار اطلاعات را داخل دیتابیس ذخیره میکنم

    حال من دو راه خواهم داشت که :

    راه اول: بیام وقتی کالارو داخل دیتاگرید اضافه میکنم از جدول موجودی هم کم و به ستون فروخته شده اضافه کنم

    راه دوم : یا اینکه وقتی کاربر کل کالای موردنظر رو داخل دیتاگرید اضافه کرد در اخر کار که میخواهیم فاکتور در دیتابیس ذخیره بشه همان لحظه هم بیاییم یه حلقه دوباره بزاریم و تعداد کالاهای اضافه شده بدست بیاریم و دوباره حلقه بزاریم و همان تعداد را در ستون فروخته شده ذخیره کنیم.

    راه دومی یکم طولانی تر میشهراه اولی هم که خوب نیست چون ممکنه کاربر کالای موردنظر رو از دیتاگرید حذف کنه و دوباره مجبوریم به دیتابیس برگردونیم


    شما کدوم راه رو پیشنهاد میدید؟




  13. #13

    نقل قول: جدول فاکتور و زیرفاکتور در دیتابیس

    شما کدی که باهاش درج رو انجام میدی بذار تا بررسی کنیم، نیازی به این همه حلقه for نیست با یدونه کار روبراه میشه

  14. #14
    کاربر دائمی آواتار samiasoft
    تاریخ عضویت
    مهر 1391
    محل زندگی
    اردبیل
    پست
    1,242

    نقل قول: جدول فاکتور و زیرفاکتور در دیتابیس

    نقل قول نوشته شده توسط mr.sirwan مشاهده تاپیک
    شما کدی که باهاش درج رو انجام میدی بذار تا بررسی کنیم، نیازی به این همه حلقه for نیست با یدونه کار روبراه میشه

    دستور اضافه کردن کالاها در دیتاگرید فاکتور :

    grd_facotr_kharid.Rows.Add("",codekala,namekala,va  hed,geimateforosh,tedad,kol_geimat);


    دستور ذخیره کل دیتاگرید در دیتابیس در جداول فاکتور و زیرفاکتور:
     //ذخیره فاکتور در دیتابیس

    decimal fid = decimal.Parse(txt_factor_id.Text);
    decimal f_Praice = decimal.Parse(txt_factor_Praice.Text);
    decimal f_TPraice = decimal.Parse(txt_factor_TPraice.Text);
    int id_moshtari = Functions.id_mosh;
    database.Tbl_Factor.Add(new Tbl_Factor()
    {
    factor_id = fid,
    id_moshtari_fk = id_moshtari,
    date_submit =factor_date.Text,
    pardakht_type =combo_pardakht.Text,
    factor_Price = f_Praice,
    Total_Price = f_TPraice


    });
    database.SaveChanges();


    //.................................................. ..
    //ذخیره زیرفاکتور یا همان کل دیتاگرید در دیتابیس


    for (int i=0 ; i <= grd_facotr_kharid.RowCount-1 ; i++)
    {
    string pid = grd_facotr_kharid.Rows[i].Cells["P_id_fk"].Value.ToString();
    string tdad = grd_facotr_kharid.Rows[i].Cells["z_tedad"].Value.ToString();
    string zprice = grd_facotr_kharid.Rows[i].Cells["z_Price"].Value.ToString();
    string ztprice = grd_facotr_kharid.Rows[i].Cells["z_TPrice"].Value.ToString();


    database.Tbl_ZirFactor.Add(new Tbl_ZirFactor()
    {
    factor_id_fk= fid,
    P_id_fk= decimal.Parse(pid),
    z_tedad= int.Parse(tdad),
    z_Price=decimal.Parse(zprice),
    z_TPrice= decimal.Parse(ztprice)


    });
    database.SaveChanges();
    }



  15. #15

    نقل قول: جدول فاکتور و زیرفاکتور در دیتابیس

    کد کالا کدومه؟ Pid؟

  16. #16

    نقل قول: جدول فاکتور و زیرفاکتور در دیتابیس


    Product product = null;
    for (int i=0 ; i <= grd_facotr_kharid.RowCount-1 ; i++) {
    string pid = grd_facotr_kharid.Rows[i].Cells["P_id_fk"].Value.ToString();
    string tdad = grd_facotr_kharid.Rows[i].Cells["z_tedad"].Value.ToString();
    string zprice = grd_facotr_kharid.Rows[i].Cells["z_Price"].Value.ToString();
    string ztprice = grd_facotr_kharid.Rows[i].Cells["z_TPrice"].Value.ToString();


    database.Tbl_ZirFactor.Add(new Tbl_ZirFactor()
    {
    factor_id_fk= fid,
    P_id_fk= decimal.Parse(pid),
    z_tedad= int.Parse(tdad),
    z_Price=decimal.Parse(zprice),
    z_TPrice= decimal.Parse(ztprice)


    });

    product = database.products.Find(pid);
    product.SoldQuantity+=tdad;
    database.Entry(product).State= EntityState.Modified;


    database.SaveChanges();
    product = null;


    }


    پراپرتی SoldQuantity فیلد مقدار فروش رفته س، در ضمن اگر این عمل ویرایش که الان اضافه کردم وجود نداشت، لازم نبود به ازای هر بار اضافه کردن به لیست فاکتور، متد SaveGhanges رو فراخوانی کنی، کافی بود کارای اضافه کردن رو داخل حلقه انجام بدی و یک بار متد SaveChanges رو بیرون حلقه فراخوانی کنی
    آخرین ویرایش به وسیله mr.sirwan : شنبه 12 اسفند 1396 در 23:42 عصر

  17. #17

    نقل قول: جدول فاکتور و زیرفاکتور در دیتابیس

    یه راه خیلی بهتر اینه که یه لیست از نوع کد کالا تعریف کنی و هر وقت کالایی به زیر فاکتور اضافه یا از زیر فاکتور حذف شد، کد اون کالا رو به لیست اضافه یا ازش حذف کنی و بعد از تایید نهایی فاکتور که قراره تو دیتابیس ثبت بشه، بیای قبل از حلقه for تمامی اون کالاهایی که کدشون تو لیستت هست (یعنی جهت فروش به این فاکتور اضافه شدن) رو واکشی کنی، و عمل ویرایش فیلد "فروش رفته" رو روشون انچام بدی، با اینکار دقیقا 2 تا کوئری به دیتابیس خواهی زد. که از کد الانت خیلی بهتر و حرفه ای تر هستش

  18. #18
    کاربر دائمی آواتار samiasoft
    تاریخ عضویت
    مهر 1391
    محل زندگی
    اردبیل
    پست
    1,242

    نقل قول: جدول فاکتور و زیرفاکتور در دیتابیس

    نقل قول نوشته شده توسط mr.sirwan مشاهده تاپیک
    یه راه خیلی بهتر اینه که یه لیست از نوع کد کالا تعریف کنی و هر وقت کالایی به زیر فاکتور اضافه یا از زیر فاکتور حذف شد، کد اون کالا رو به لیست اضافه یا ازش حذف کنی و بعد از تایید نهایی فاکتور که قراره تو دیتابیس ثبت بشه، بیای قبل از حلقه for تمامی اون کالاهایی که کدشون تو لیستت هست (یعنی جهت فروش به این فاکتور اضافه شدن) رو واکشی کنی، و عمل ویرایش فیلد "فروش رفته" رو روشون انچام بدی، با اینکار دقیقا 2 تا کوئری به دیتابیس خواهی زد. که از کد الانت خیلی بهتر و حرفه ای تر هستش
    دمتون گرم واقعا ممنونم از وقتی که گذاشتید این مساله رو با تحلیل ناشیانه ام خیلی پیچیده کرده بودم

تاپیک های مشابه

  1. ساخت یک جدول در دیتابیس توسط ASP.net
    نوشته شده توسط rtech در بخش ASP.NET Web Forms
    پاسخ: 14
    آخرین پست: دوشنبه 11 دی 1391, 16:34 عصر
  2. سوال: کپي يک جدول از يک ديتابيس به جدولي در ديتابيس ديگر در Sql بوسيله دلفي
    نوشته شده توسط Sabeghi در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 3
    آخرین پست: جمعه 04 مرداد 1387, 23:10 عصر
  3. سوال: بدست آوردن نام جدول در دیتابیس
    نوشته شده توسط kablayi در بخش VB.NET
    پاسخ: 16
    آخرین پست: جمعه 24 خرداد 1387, 11:19 صبح
  4. حذف جدول در دیتابیس
    نوشته شده توسط asaghafi در بخش برنامه نویسی در 6 VB
    پاسخ: 0
    آخرین پست: شنبه 15 اردیبهشت 1386, 15:09 عصر
  5. نحوه دسترسی به رکورد خاصی از جدول در دیتابیس
    نوشته شده توسط yaserzare در بخش VB.NET
    پاسخ: 1
    آخرین پست: پنج شنبه 17 اسفند 1385, 16:38 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •