صفحه 1 از 7 123 ... آخرینآخرین
نمایش نتایج: از 1 به 10 از 69
  1. #1
    کاربر فعال
    تاریخ عضویت
    2011/10/12
    نوشته ها
    4,636
    امتیازها
    42,081
    سطح
    100
    تشکر کردن
    5,411
    Thanked 12,306 Times in 4,089 Posts
    دستاوردها:
    Three FriendsTagger First ClassYour first GroupCreated Album picturesOverdrive

    Question پرسش و پاسخ عمومی / برنامه نویسی

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

  2. The Following 6 Users Say Thank You to Hessam For This Useful Post:


  3. #2
    کاربر فعال
    تاریخ عضویت
    2011/10/12
    نوشته ها
    4,636
    امتیازها
    42,081
    سطح
    100
    تشکر کردن
    5,411
    Thanked 12,306 Times in 4,089 Posts
    دستاوردها:
    Three FriendsTagger First ClassYour first GroupCreated Album picturesOverdrive
    سوال اول رو خودم دارم: هدفم یاد گیریه. البته ساده هم هست!:D
    این رو هم باید روی کاغذ بنویسم و هم توی Microsoft Visual Studio 2012 اجراش کنم.
    سی شارپ: برنامه ای بنویسید که دو Lable Box ایجاد کند با این مشخصات؛
    - باکس اول، مشخصات فرد را دریافت کند.
    - باکس دوم، شماره ی دانشجویی فرد را دریافت کند.
    - سپس یک Button Box ایجاد شود که پس از اجرای آن، مشخصات فرد و شماره دانشجویی آن در دو سطر مجزا چاپ شود.

  4. The Following 4 Users Say Thank You to Hessam For This Useful Post:


  5. #3
    مدیر فنی
    تاریخ عضویت
    2011/10/05
    محل سکونت
    تهران !
    نوشته ها
    151
    امتیازها
    10,310
    سطح
    67
    تشکر کردن
    41
    Thanked 462 Times in 114 Posts
    دستاوردها:
    Three FriendsTagger Second ClassVeteran10000 Experience Points
    دقیقا کجا چاپ بشه؟ کنسول؟! یا چاپ روی چاپگر؟! من فرض میکنم توی یک پیغم نمایش بده.

    خب اول قضیه اینکه Label Box که نداریم. یک TextBox داریم و یک Label که شما منظورتون TextBox هست.

    ولی در مورد کدش هم واقعا قضیه خاصی نیست. به کد زیر نگاه کنید متوجه میشید هر بخش چکار میکنه.
    کد:
                // Name Text Box
                TextBox tb = new TextBox();
                tb.Location = new Point(0, 0);
                tb.Text = "NAME";
                this.Controls.Add(tb);
    
                // ID Text Box
                TextBox tb2 = new TextBox();
                tb2.Location = new Point(0, 30);
                tb2.Text = "ID";
                this.Controls.Add(tb2);
    
                // Button
                Button b = new Button();
                b.Location = new Point(0, 60);
                b.Text = "Print";
                b.Click += (EventHandler)(delegate(object localsender, EventArgs args)
                {
                    MessageBox.Show(tb.Text + Environment.NewLine + tb2.Text);
                });
                this.Controls.Add(b);

  6. The Following 11 Users Say Thank You to Tech Admin For This Useful Post:


  7. #4
    کاربر فعال
    تاریخ عضویت
    2011/10/12
    نوشته ها
    4,636
    امتیازها
    42,081
    سطح
    100
    تشکر کردن
    5,411
    Thanked 12,306 Times in 4,089 Posts
    دستاوردها:
    Three FriendsTagger First ClassYour first GroupCreated Album picturesOverdrive
    منظورش اینه که در خروجیی که نرم افزار میده، چاپ بشه. (داخل Forms)
    ممنون جناب فلاحتی...
    لیبل باکس منظور همون لیبل هست که توی نرم افزار ویژال استدیو - قسمت تولباکس هست.
    ضمناً یه کم ساده تر بگین لطفاً! چیزی متوجه نشدم!:d
    من تازه سی شارپ رو شروع کردم. یعنی در حد مقدماتی هم بلد نیستم!! در سطح بیگنر هستم!:d
    برای شما آب خوردنه ماشالله!:d ولی این کد هایی که شما نوشتی رو دیدم، تب کردم!:d
    الان کل این کدها جوابش هست...؟ میخوام توی برگ کاغذ بنویسم و نرم افزار. کل این کدها رو بنویسم، جواب میده؟
    یعنی یه چیزی باشه که کپی - پیست کنم تو نرم افزار و خروجی صحیح رو بده!:d بعد می برم سر کلاس و استاد توضیح میده و با هم بررسی می کنیم روش حلش رو.

  8. The Following 3 Users Say Thank You to Hessam For This Useful Post:


  9. #5
    مدیر فنی
    تاریخ عضویت
    2011/10/05
    محل سکونت
    تهران !
    نوشته ها
    151
    امتیازها
    10,310
    سطح
    67
    تشکر کردن
    41
    Thanked 462 Times in 114 Posts
    دستاوردها:
    Three FriendsTagger Second ClassVeteran10000 Experience Points
    منظورش اینه که در خروجیی که نرم افزار میده، چاپ بشه. (داخل Forms)
    ممنون جناب فلاحتی...
    لیبل باکس منظور همون لیبل هست که توی نرم افزار ویژال استدیو - قسمت تولباکس هست.
    ضمناً یه کم ساده تر بگین لطفاً! چیزی متوجه نشدم!:d
    من تازه سی شارپ رو شروع کردم. یعنی در حد مقدماتی هم بلد نیستم!! در سطح بیگنر هستم!:d
    برای شما آب خوردنه ماشالله!:d ولی این کد هایی که شما نوشتی رو دیدم، تب کردم!:d
    الان کل این کدها جوابش هست...؟ میخوام توی برگ کاغذ بنویسم و نرم افزار. کل این کدها رو بنویسم، جواب میده؟
    یعنی یه چیزی باشه که کپی - پیست کنم تو نرم افزار و خروجی صحیح رو بده!:d بعد می برم سر کلاس و استاد توضیح میده و با هم بررسی می کنیم روش حلش رو.
    خب من ابتدا پس باید یک سری موارد کلی را بگم.
    1. فرم یک فرم هست به عبارتی (!) یک میز مثلا فرض بگیرید. شما که نمیتونید روی فرم چاپ کنید. (شما که روی میز با خودکار نمینویسین؟! (از دوران بچگی صرفنظر کنید D: )) شما نیاز دارید تا یک کنترل (فرض کنید کنار این میزتون پر است از گدجت های مختلف) بزارید روی فرم و روش خروجی بدید. مثلا یک کاغذ روی میز و بعد روی اون بنویسید. کنترل نمایش متن Label هست.
    2. همه چیز در یک فرم کنترلی است. یعنی برای دریافت اطلاعات از کاربر باید TextBox بزارید که کاربر توش تایپ کنه. Label یک کنترل فقط نمایشی است و کاربر نمیتونه تغییر بده. بیشتر برای ذکر توضیحات یا خروجی دادن به درد میخوره. پس نمیشه باهاش از کاربر اطلاعات گرفت

    ببینید یک فرم یک سری ایوینت (رویداد داره) مثل همه کنترل های دیگه. شما کد زیر را باید در بخش Page Load بزارید. ایوینت پیج لود. کد زیر طولانی هست چون شما گفتید کدی بنویسید که دو تا تکست باکس بزاره و خروجی بگیره و چاپ کنه. خب من هم نرمافزاری نوشتم که به یک فرم خالی خودش دو عدد تکست باکس اضافه میکنه و یک کلید و ....
    فکر کنم منظور شما این بود که خودتون تکست باکس ها را روی فرم دستی میزارید و کلید رو هم میزارید و فقط میخواید وقتی کلیک شد بیاد و اطلاعات اون دو تا تکست باکس دیگه را نمایش بده. خب در این صورت شما فقط نیاز دارید تا کد زیر را در رویداد کلیک کلید بزارید و بقیه بخشها نیازی نیست
    کد:
     MessageBox.Show(tb.Text + Environment.NewLine + tb2.Text);
    البته حواستون باشه که tb و tb2 را با نام تکست باکسهایی که قرار دادید عوض کنید.

    و اما جهت توضیح کد زیر را هم بیشتر براتون توضیح بدم تا خط به خط متوجه بشید:

    کد:
                // Name Text Box
                TextBox tb = new TextBox(); // این خط یک متغییر از نوع تکست باکس می سازه. بعد متغییر را با یک تکست باکس پر میکنه.
                tb.Location = new Point(0, 0); // این خط مقدار لوکیشن در این تکست باکس ساخته شده را تنظیم میکنه که توی نقطه 0 در 0 قرار بگیره. در فرم البته. توجه کنید که برای تنظیم مکان تکت باکس باید مقدار لوکیشن را با یک پوینت پر کرد و در زمان ساخت یک یوینت هم دو عدد ایکس و ایگرگ گرفته میشه که میبینید بهش دادید.
                tb.Text = "NAME"; // حالا مقدار تکست این تکست باکسی که ساختیم رو میکنیم نیم که یوزر بفهمه باید چی وارد کنه اونجا.
                this.Controls.Add(tb); // خب این تکست باکسو ما ساختیم ولی باید به فرم اضافش کنیم. تا زمانی که فرم نگین اینو اضافه کن و نمایش بده خب نمایشش نمیده. برای این کار از این کد استفاده میکنیم. دقت کنید که دیس در این کد به فرم اشاره داره چون کد را داریم داخل رویداد لود شدن فرم مینویسیم پس این مرتبط با فرم است (البته دلیل اصلیش اینه که کد را داریم در بخشی از فرم می نویسیم. پس در هر رویدادی هم باشیم باز دیس به فرم اشاره داره)
    
                // ID Text Box
                TextBox tb2 = new TextBox();
                tb2.Location = new Point(0, 30);
                tb2.Text = "ID";
                this.Controls.Add(tb2);
    
                // Button
                Button b = new Button(); // مجددا مثل دو نمونه بالا یک متغییر از نوع باتون تعریف کردیم و یک باتون هم ساختیم و ریختیم توش
                b.Location = new Point(0, 60); // مجدد مکانش روی فرم ست شده
                b.Text = "Print"; // نوشته روی کلید ست شده
                b.Click += (EventHandler)(delegate(object localsender, EventArgs args) // خب این خط ها یکم سخت تره. شما وقتی توی فرم یک کلید میزارید و روش دو تا کلیک میکنید خود ویژوال براتون متد رویداد کلیک را میسازه و شما کدتون را در اون بخش مینویسین. در اینجا ما یک متد اینلاین تعریف کردیم یعنی وقتی کلیک شد نمیخواد یک متد دیگه بسازیم بگیم اونو اجرا کن. میگیم بیا یک متدی هست روی هوا است و اسم و رسم نداره و همین وسط هم تعریفش میکنیم از اون استفاده کن به عبارتی. پس وقتی کلیک میشه این کد زیری ران میشه.
                {
                    MessageBox.Show(tb.Text + Environment.NewLine + tb2.Text); // این کدی هست که وقتی کلیک میشه اجرا میشه. این کد یک مسیج باکس نمایش میده. یک باکس پیغام به عبارتی که ارور و اینها نمایش میده. بعد داخلش مقدار وارد شده تکست باکس اول و دوم را با یک خط مینویسه
                });
                this.Controls.Add(b);

  10. The Following 11 Users Say Thank You to Tech Admin For This Useful Post:


  11. #6
    مدير بازنشسته
    تاریخ عضویت
    2011/10/12
    محل سکونت
    تهران - شیراز
    نوشته ها
    904
    امتیازها
    15,191
    سطح
    79
    تشکر کردن
    3,301
    Thanked 2,514 Times in 793 Posts
    دستاوردها:
    Three FriendsYour first GroupTagger First ClassVeteran10000 Experience Points

    سلام حسام جان ! ببخشید دیر شد !

    Public Form1(){InitializeComponent();}
    Private void Form1_Load(object sender, EventArgs e)
    {
    TextBox Txt_1=new TextBox();
    TextBox Txt_2=new TextBox();
    Button btn=new Button();
    Txt_1.Name=”txt_Name”;
    Txt_2.Name=”txt_ID”;
    btn.Name=”btn_submit”;
    Txt_1.Location=new Point(40,50);
    Txt_2.Location=new Point(40,100);
    btn.Location=new Point(40,150);
    Txt_1.Text=”Name”;
    Txt_2.Text=”ID”;
    btn.Text=”Submit”;
    Txt_1.V***ble=true;
    Txt_2.V***ble=true;
    btn.V***ble=true;
    btn_submit.Clicl+=new EventHandler(btn_Submit_Click);
    This.Controls.Add(Txt_1);
    This.Controls.Add(Txt_2);
    This.Controls.Add(btn);
    }
    private void btn_Submit_Click(object sender,System.EventArgs e)
    {
    Int err=0;
    If(ChechName()===false)
    {
    err=1;
    txt_Name.Text=””;
    }
    If(ChechID()===false)
    {
    err=1;
    txt_ID.Text=””;
    }
    If(err==1)
    {
    Return ;
    }
    txt_Name.V***ble=false;
    txt_ID.V***ble=false;
    btn_submit.V***ble=false;
    Label lbl_text1=new Label();
    Label lbl_text2=new Label();
    lbl_text1.Location=New Point(40,50);
    lbl_text2.Location=New Point(40,100);
    lbl_text1.Text=”Name : ”+txt_Name.Text;
    lbl_text2.Text=”ID : ”+txt_ID.Text;
    lbl_text1.V***ble=true;
    lbl_text2.V***ble=true;
    This.Controls.Add(lbl_text1);
    This.Controls.Add(lbl_text2);
    }
    private Bool ChechName()
    {
    Regex reg=new Regex(@"^[a-zA-z]+$");
    Match match=reg.Match(txt_Name.Text);
    if(match.Success)
    {
    return true;
    }
    else
    {
    return false;
    }
    }
    private Bool CheckID()
    {
    Regex reg=new Regex(@"^[1-9]{4,9}$");
    Match match=reg.Match(txt_ID.Text);
    if(match.Success)
    {
    return true;
    }
    else
    {
    return false;
    }
    }
    نکات :

    • کد ها رو جای کد های کلاس Form1 بذار
    • اگه ارور داد ممکنه بخاطر حروف کوچيک و بزرگ باشه
    • اگه هم به Regex خطا داد کد رو از اينترنت جستجو کن اولی بايد حروف مورد تاييد باشه و دومی بايد عدد
    • Namespace ها رو خراب نکنی
    • کدهای درون کلاس رو فقط نوشتم کد تعريف و کدهای Namespace ها تغيير ندی
    • اگه هم خطایی ديدی بر اساس گزارش خطایی میده کد رو اصلاح کن من خودم برنامه Visual Studio نداشتم چک کنم


  12. The Following 5 Users Say Thank You to ya30n For This Useful Post:


  13. #7
    کاربر انجمن
    تاریخ عضویت
    2011/10/12
    نوشته ها
    1,036
    امتیازها
    17,097
    سطح
    83
    تشکر کردن
    7,454
    Thanked 2,719 Times in 906 Posts
    دستاوردها:
    Three FriendsTagger First ClassYour first GroupCreated Album picturesVeteran
    به به اساتید برنامه نویسی.
    آقا زیرنویس فارسی نداره؟؟:دی
    ....

  14. The Following 2 Users Say Thank You to Arthur For This Useful Post:


  15. #8
    مدیر فنی
    تاریخ عضویت
    2011/10/05
    محل سکونت
    تهران !
    نوشته ها
    151
    امتیازها
    10,310
    سطح
    67
    تشکر کردن
    41
    Thanked 462 Times in 114 Posts
    دستاوردها:
    Three FriendsTagger Second ClassVeteran10000 Experience Points
    سلام و خوش آمدید

    والا دقیق متوجه سوال نشدم. با این حال چیزی که برداشت کردم این بود که شما دو تا تیبل دارید. مثلا تیبل یک
    Table1
    -- (Id (PK
    -- X1
    -- Y1
    -- Z1
    -- (Table2_Id (FK

    Table2
    -- (Id (PK
    -- X2
    -- Y2
    -- Z2

    اگر همچین جداولی داشته باشیم به نظر میرسه شما میخواهید رکوردهایی را از جدول 2 پاک کنید که در جدول 1 ازشون نام برده نشده باشه. درست میگیم؟!

    برای اینکار ابتدا ما باید بتونیم یک کوئری روی جدول 1 بزنیم و لیست ای دی هایی که ذکر شده در مورد حدول 2 را خارج کنیم ازش به عبارتی. برای اینکار من فکر میکنم این کوئری کارو راه بندازه: (توی دستور زیر حتی HAVING COUNT(Table2_Id) > 0 رو هم جهت دلگرمی گذاشتم ولی بعید میدونم لازم باشه حتی. در هر حال Having زیاد تاثیری هم در پرفرومنس نداره)
    کد:
    SELECT Table2_Id FROM Table1 GROUP BY Table2_Id HAVING COUNT(Table2_Id) > 0;
    خب این لیست ای دی هایی که نباید حذف بشن از تیبل 2 را به ما میده. حالا باید کوئری حذفی برای جدول 2 بنویسیم که هر ایدی در این کوئری بالا نبود را حذف کنه: (و کوئری بالا رو هم توش ترکیب کنیم که بشه فقط یک دستور)
    کد:
    DELETE FROM Table2 WHERE Table2.Id NOT IN (
                               SELECT Table2_Id FROM Table1 GROUP BY Table2_Id HAVING COUNT(Table2_Id) > 0
    );
    همون طور که میبینید کد کاملا مشخصه و نیازی به توضیح خاصی نداره. البته تست نکردم ولی باید جواب بده چون مشکل لاجیکال نمیبینم توش. شاید املایی. در هر حال.

    سوال دومتون بیشتر شبیه تئوری به نظر میرسه که خب من اطلاع دقیقی در مورد این تئوری ها ندارم متاسفانه. ولی چیزی که میشه از سوال برداشت کرد اینه که مثلا شما در همین مثالمون از روی فیلد x1 و x2 و y1 و y2 و... حدس بزنید که فیلد table2_id چه عددی میتونه باشه که صحیح باشه. ولی با این حال باز هم من الان نمیدونم چطور این میتونه روی کد پیاده بشه.


    *FK = کلید خارجی
    *PK = کلید اصلی

  16. The Following 4 Users Say Thank You to Tech Admin For This Useful Post:


  17. #9
    کاربر جدید
    تاریخ عضویت
    2012/11/19
    نوشته ها
    5
    امتیازها
    254
    سطح
    5
    تشکر کردن
    0
    Thanked 0 Times in 0 Posts
    دستاوردها:
    3 months registered250 Experience Points
    سلام تشکر از پاسختون ولی من یه چیز دیگه بود سوالم ... دوتا جدولی ک ایجاد میکنیم باهم رابطه دارن یعنی تو یه جدول کلید اصلی تو جدول دوم کلید خارجی . بعدمامیخواییم بایه دستور ک استادمون راهنمایی کرد گفت تو پارامترهای کلید خارجی است زمانی میخواهیم یه فیلدی رااز جدول دومی حذف کنیم بایه دستور بتونیم این کارو کنیم .چون تو حالت عادی وقتی فیلدی را از جدولی ک کلید خارجی داره حذف میکنیم باید بریم تو جدول اولی ک کلید اصلی هست هم حذف کنیم. من یه دستوری میخام ک نیازی ب دوبار حذف کردن فیلد از دوتا جدول نداشته باشیم بایه دستور پاک بشن

  18. #10
    مدیر فنی
    تاریخ عضویت
    2011/10/05
    محل سکونت
    تهران !
    نوشته ها
    151
    امتیازها
    10,310
    سطح
    67
    تشکر کردن
    41
    Thanked 462 Times in 114 Posts
    دستاوردها:
    Three FriendsTagger Second ClassVeteran10000 Experience Points
    الان متوجه منظورتون شدم. فرض اینکه از SQL Server Management Studio استفاده کنید زمانی که رلیشن شیپ FK را تعیین میکنید یک پنجره ای باز میشه به نام Foreign Keys Relationships که در اون صفحه میتونید رلیشن شیپ مورد نظر را از سمت چپ انتخاب کنید و در تنظیماتش در سمت راست بخشی هست به نام Delete Rule. اون بخش رو بزارید روی Cascade

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

  19. The Following 3 Users Say Thank You to Tech Admin For This Useful Post:


 

 
صفحه 1 از 7 123 ... آخرینآخرین

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

کلمات کلیدی این موضوع

مجوز های ارسال و ویرایش

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