یادگیری C# (بررسی سئوالات و مشکلات)

RIG

متخصص C#.net
سلام بعد یه غیبت تقریبا طولانی که احتمالا یقینا و قطعا برای کسی مهم هم نیست بر گشتم . دوستان عزیزم من با اطلاعاتی که تا این لحزه کسب کردم یه چند خطی کد نوشتم که می خوام بزارمش تو انجمن تا هم دوستای گلم نظرشونو در بارش بگن و هم این که با کمک دوستان (که اگه بنده رو لایق دوستی بدونن) عیب ها شو بر طرف کنم ، البته چون نمی دونم دقیقا باید تو کدوم تاپیک بزارمش پیشاپیش اگه اشتباها توی تاپیک نا مربوط گذاشتمش معزرت می خوام ، راستی می دونید که من تازه کارم:D اما (مسمم اینو دیگه واقا نمی دونم) فعلا لینک دانلود رو میزارم تا بعد http://shakibonline.rozup.ir/myProgram/enter-Name.zip.html
به عنوان تازه کار خیلی خوبه . امیدوارم بتونی ادامه بدی .
 

shakibonline

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

shakibonline

عضو جدید
سلام به دوستان :gol:
ببخشید یه مدتییه اینترنتم ریپ می زنه واسه همین نتونستم بیام.
سریع می رم سر اصل مطلب چون می ترسم اینترنتم قطع شه .
برنامه ای که گذاشتم شامل:
یه منو با گزینه های خروج و درباره ی ما هست
4 تا تب که تو هر کدوم یکی از برنامه هایی که تازه کارایی مثل باهاش سر کار دارن،
اما برنامه ها
1 - hello user نمایش توی لیبل
2 - hello user نمایش توی messagebox
3 - تب نمایش a که متن وارد شده توسط کاربر رو ذخیره می کنه ، بعد متن ذخیره شده رو نمایش می ده.
4 - دریافت سن کاربر و نمایش اون که اصلا اون چیزی که می خواستم نشد ،می شه به جای عدد متن هم وارد کرد !! :eek: (لطفا بفرمایید چه طوری ؟)
راستی من Visual Studio 2010 رو نصب کردم که الان expired شده ، باید چی کار کنم؟ :cry:
 

Ronin87

عضو جدید
سلام خدمت دوستان عزیز
یه سوال داشتم در خصوص اینکه وقتی در انتقال اطلاعات(Casting) بین دو تایپ همزاد overflow داشته باشیم که در واقع یک Logical Error میباشد به چه نحوی می تونیم این خطای منطقی را به Run Time Error تبدیل کنیم ؟؟
ممنون
 

negin17h

مدیر تالارهای مهندسی کامپیوتر و رباتیکمتخصص #C
مدیر تالار
سلام خدمت دوستان عزیز
یه سوال داشتم در خصوص اینکه وقتی در انتقال اطلاعات(Casting) بین دو تایپ همزاد overflow داشته باشیم که در واقع یک Logical Error میباشد به چه نحوی می تونیم این خطای منطقی را به Run Time Error تبدیل کنیم ؟؟
ممنون

راستش نمیدونم منظورتون رو متوجه شدم یا خیر اما اگر برداشتم درست باشد با استفاده از بلوک try catch اگر خطایی بود که وارد Catch شد میتوانید Throw new Exception ... کنید.
 

Ronin87

عضو جدید
سلام به دوستان :gol:
ببخشید یه مدتییه اینترنتم ریپ می زنه واسه همین نتونستم بیام.
سریع می رم سر اصل مطلب چون می ترسم اینترنتم قطع شه .
برنامه ای که گذاشتم شامل:
یه منو با گزینه های خروج و درباره ی ما هست
4 تا تب که تو هر کدوم یکی از برنامه هایی که تازه کارایی مثل باهاش سر کار دارن،
اما برنامه ها
1 - hello user نمایش توی لیبل
2 - hello user نمایش توی messagebox
3 - تب نمایش a که متن وارد شده توسط کاربر رو ذخیره می کنه ، بعد متن ذخیره شده رو نمایش می ده.
4 - دریافت سن کاربر و نمایش اون که اصلا اون چیزی که می خواستم نشد ،می شه به جای عدد متن هم وارد کرد !! :eek: (لطفا بفرمایید چه طوری ؟)
راستی من Visual Studio 2010 رو نصب کردم که الان expired شده ، باید چی کار کنم؟ :cry:

سلام
در خصوص سوال 4 باید بگم که اگر از MessageBox داری استفاده میکنی میتونی کد زیر به کار ببری:
int a = int.Parse(textBox1.Text);
MessageBox.Show(a.ToString());
 

Ronin87

عضو جدید
راستش نمیدونم منظورتون رو متوجه شدم یا خیر اما اگر برداشتم درست باشد با استفاده از بلوک try catch اگر خطایی بود که وارد Catch شد میتوانید Throw new Exception ... کنید.

مرسی بابت راهنمایی,راستش منظورم اینه که مثلاً یه متغیر از نوع int تعریف کنیم و مقدار این متغیر را بریک عدد دیگه تقسیم کنیم
int num1 = 25;
num1 /= 7;
در اینجا owerflow داریم،که در واقع خطای منطقی تولید میکند،این خطا را به چه شیوه ای میتونیم را به Run time error تبدیل کنیم؟؟،البته try,catch که گفتین را امتحان کردم و از System.OverflowExceptionهم استفاده کردم،اما نتیجه 100% نگرفتم،
بازم ممنون
 

mammad.mechanic

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

psd star

عضو جدید
تعریف آرایه

تعریف آرایه

با سلام
چطوری میشه در سی شارپ یک آرایه دو بعدی با طول نامعین تعریف کرد منظورم اینه که دو سطر داشته باشه ولی طولش نامعین باشه.نحوه مقدار دهی به این نوع آرایه به چه صورت است؟من آرایه را به این صورت تعریف کردم و هیچ خطایی نداشت ولی وقتی مقدار دهی می کنم خطا میده.
int [][] array1=new int [2][];
array1[0][0]=5;


 

کربلایی

مدیر بازنشسته
با سلام
چطوری میشه در سی شارپ یک آرایه دو بعدی با طول نامعین تعریف کرد منظورم اینه که دو سطر داشته باشه ولی طولش نامعین باشه.نحوه مقدار دهی به این نوع آرایه به چه صورت است؟من آرایه را به این صورت تعریف کردم و هیچ خطایی نداشت ولی وقتی مقدار دهی می کنم خطا میده.
int [][] array1=new int [2][];
array1[0][0]=5;



سلام
باید از کلاس System.Collections.Generic.List استفاده کنید.
مثال:
کد:
[/B][/COLOR]using System;
using System.Collections.Generic;

public class Example
{
    public static void Main()
    {
        List<string> dinosaurs = new List<string>();

        Console.WriteLine("\nCapacity: {0}", dinosaurs.Capacity);

        dinosaurs.Add("Tyrannosaurus");
        dinosaurs.Add("Amargasaurus");
        dinosaurs.Add("Mamenchisaurus");
        dinosaurs.Add("Deinonychus");
        dinosaurs.Add("Compsognathus");

        Console.WriteLine();
        foreach(string dinosaur in dinosaurs)
        {
            Console.WriteLine(dinosaur);
        }

        Console.WriteLine("\nCapacity: {0}", dinosaurs.Capacity);
        Console.WriteLine("Count: {0}", dinosaurs.Count);

        Console.WriteLine("\nContains(\"Deinonychus\"): {0}",
            dinosaurs.Contains("Deinonychus"));

        Console.WriteLine("\nInsert(2, \"Compsognathus\")");
        dinosaurs.Insert(2, "Compsognathus");

        Console.WriteLine();
        foreach(string dinosaur in dinosaurs)
        {
            Console.WriteLine(dinosaur);
        }

        Console.WriteLine("\ndinosaurs[3]: {0}", dinosaurs[3]);

        Console.WriteLine("\nRemove(\"Compsognathus\")");
        dinosaurs.Remove("Compsognathus");

        Console.WriteLine();
        foreach(string dinosaur in dinosaurs)
        {
            Console.WriteLine(dinosaur);
        }

        dinosaurs.TrimExcess();
        Console.WriteLine("\nTrimExcess()");
        Console.WriteLine("Capacity: {0}", dinosaurs.Capacity);
        Console.WriteLine("Count: {0}", dinosaurs.Count);

        dinosaurs.Clear();
        Console.WriteLine("\nClear()");
        Console.WriteLine("Capacity: {0}", dinosaurs.Capacity);
        Console.WriteLine("Count: {0}", dinosaurs.Count);
    }
}[COLOR=#0000cd][B]
موفق باشید
 

psd star

عضو جدید
سلامباید از کلاس System.Collections.Generic.List استفاده کنید.مثال:
کد:
using System;using System.Collections.Generic;public class Example{    public static void Main()    {        List dinosaurs = new List();        Console.WriteLine("\nCapacity: {0}", dinosaurs.Capacity);        dinosaurs.Add("Tyrannosaurus");        dinosaurs.Add("Amargasaurus");        dinosaurs.Add("Mamenchisaurus");        dinosaurs.Add("Deinonychus");        dinosaurs.Add("Compsognathus");        Console.WriteLine();        foreach(string dinosaur in dinosaurs)        {            Console.WriteLine(dinosaur);        }        Console.WriteLine("\nCapacity: {0}", dinosaurs.Capacity);        Console.WriteLine("Count: {0}", dinosaurs.Count);        Console.WriteLine("\nContains(\"Deinonychus\"): {0}",            dinosaurs.Contains("Deinonychus"));        Console.WriteLine("\nInsert(2, \"Compsognathus\")");        dinosaurs.Insert(2, "Compsognathus");        Console.WriteLine();        foreach(string dinosaur in dinosaurs)        {            Console.WriteLine(dinosaur);        }        Console.WriteLine("\ndinosaurs[3]: {0}", dinosaurs[3]);        Console.WriteLine("\nRemove(\"Compsognathus\")");        dinosaurs.Remove("Compsognathus");        Console.WriteLine();        foreach(string dinosaur in dinosaurs)        {            Console.WriteLine(dinosaur);        }        dinosaurs.TrimExcess();        Console.WriteLine("\nTrimExcess()");        Console.WriteLine("Capacity: {0}", dinosaurs.Capacity);        Console.WriteLine("Count: {0}", dinosaurs.Count);        dinosaurs.Clear();        Console.WriteLine("\nClear()");        Console.WriteLine("Capacity: {0}", dinosaurs.Capacity);        Console.WriteLine("Count: {0}", dinosaurs.Count);    }}
موفق باشید
با سلام ممنون از اینکه راهنمایی کردید اما من چون زیاد با سی شارپ کار نکردم درک کد ارسالی شما کمی مشکله برام.من می خوام یک برنامه بنویسم که یک شی(مثلا radio button )روی یک تصویری که چند مسیر را نشان میده حرکت کرده و از بین چند مسیر ، مسیر درست را پیدا کند.و اگر یک مسیر را اشتباهی رفت بتونه به عقب برگرده و یک مسیر دیگه را امتحان کنه تا به مقصد که یک نقطه قرمز روی تصویره برسه.من تو برنامه ای که نوشتم قصد داشتم مسیر های طی شده را توی آرایه دو بعدی (برای x و y) ذخیره کنم تا یک مسیر را دو بار طی نکنم. که با نحوه مقدار دهی به آرایه مشکل دارم.این تصویر را ضمیمه کردم. ممنون میشم اگه راهنمایی کنید.
با تشکر
 

پیوست ها

  • pic.JPG
    pic.JPG
    7.9 کیلوبایت · بازدیدها: 0

کربلایی

مدیر بازنشسته
با سلام ممنون از اینکه راهنمایی کردید اما من چون زیاد با سی شارپ کار نکردم درک کد ارسالی شما کمی مشکله برام.من می خوام یک برنامه بنویسم که یک شی(مثلا radio button )روی یک تصویری که چند مسیر را نشان میده حرکت کرده و از بین چند مسیر ، مسیر درست را پیدا کند.و اگر یک مسیر را اشتباهی رفت بتونه به عقب برگرده و یک مسیر دیگه را امتحان کنه تا به مقصد که یک نقطه قرمز روی تصویره برسه.من تو برنامه ای که نوشتم قصد داشتم مسیر های طی شده را توی آرایه دو بعدی (برای x و y) ذخیره کنم تا یک مسیر را دو بار طی نکنم. که با نحوه مقدار دهی به آرایه مشکل دارم.این تصویر را ضمیمه کردم. ممنون میشم اگه راهنمایی کنید.
با تشکر

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

mammad.mechanic

عضو جدید
سلام
برای جابجا کردن 2تا آرایه با هم دیگه از چه دستوری باید استفاده کنم؟یعنی 2تا آرایه جاهاشون رو با هم عوض کنن..مثلا تو ماتریس
 

negin17h

مدیر تالارهای مهندسی کامپیوتر و رباتیکمتخصص #C
مدیر تالار
سلام
برای جابجا کردن 2تا آرایه با هم دیگه از چه دستوری باید استفاده کنم؟یعنی 2تا آرایه جاهاشون رو با هم عوض کنن..مثلا تو ماتریس

ببخشید یعنی چی؟
یعنی مثلاً دو سطر یک ماتریس جابجا شوند؟
 

negin17h

مدیر تالارهای مهندسی کامپیوتر و رباتیکمتخصص #C
مدیر تالار
با سلام ممنون از اینکه راهنمایی کردید اما من چون زیاد با سی شارپ کار نکردم درک کد ارسالی شما کمی مشکله برام.من می خوام یک برنامه بنویسم که یک شی(مثلا radio button )روی یک تصویری که چند مسیر را نشان میده حرکت کرده و از بین چند مسیر ، مسیر درست را پیدا کند.و اگر یک مسیر را اشتباهی رفت بتونه به عقب برگرده و یک مسیر دیگه را امتحان کنه تا به مقصد که یک نقطه قرمز روی تصویره برسه.من تو برنامه ای که نوشتم قصد داشتم مسیر های طی شده را توی آرایه دو بعدی (برای x و y) ذخیره کنم تا یک مسیر را دو بار طی نکنم. که با نحوه مقدار دهی به آرایه مشکل دارم.این تصویر را ضمیمه کردم. ممنون میشم اگه راهنمایی کنید.
با تشکر

مشکلتون در مقداردهی به آرايه چیه؟
 

mammad.mechanic

عضو جدید
ببخشید یعنی چی؟
یعنی مثلاً دو سطر یک ماتریس جابجا شوند؟
بله....می خوام یه شرط بزارم که مثلا اگه آرایه سطر دوم ستون اول بزرگتر از آرایه سطر اول بود..کل سطر دوم با سطر اول جا بجا بشه....
و یه سوال دیگه تو سی شارپ آرایه های ماتریس رو نمیشه به صورت i j تعریف کرد؟
 

negin17h

مدیر تالارهای مهندسی کامپیوتر و رباتیکمتخصص #C
مدیر تالار
بله....می خوام یه شرط بزارم که مثلا اگه آرایه سطر دوم ستون اول بزرگتر از آرایه سطر اول بود..کل سطر دوم با سطر اول جا بجا بشه....
و یه سوال دیگه تو سی شارپ آرایه های ماتریس رو نمیشه به صورت i j تعریف کرد؟

سلام
چرا میشه آرایه دو بعدی تعریف کرد :
کد:
int[3][4] i;

ماتریس i با 3 سطر و 4 ستون.

در مورد شرط هم مشکلی نداره. شرط رو میذاری، فقط برای جابجایی مثل متلب نیست که کل یکباره جابجا شه. باید temp بگیری و درایه ها را یکی یکی جابجا کنید :gol:
 

mammad.mechanic

عضو جدید
سلام
چرا میشه آرایه دو بعدی تعریف کرد :
کد:
int[3][4] i;

ماتریس i با 3 سطر و 4 ستون.

در مورد شرط هم مشکلی نداره. شرط رو میذاری، فقط برای جابجایی مثل متلب نیست که کل یکباره جابجا شه. باید temp بگیری و درایه ها را یکی یکی جابجا کنید :gol:

ممنون..

حالا اگه بخوام یه آرایه از ماتریس رو بخونم چی؟...مثلا بگم آرایه سر دوم ستون سوم برابر با یه عدد..
در واقع من تو برنامم یه ماتریس 9*9 دارم که برای هر آرایه یه textbox تعریف کردم....و برای تعریف هر آرایه از ماتریس از کد
double [] x=new double [] l
استفاده کردم..
حال با این کدی که شما گفتی چطوری می تونم آرایه هر ماتریس به یه textbox اختصاص بدم...


این دستور temp چطور باید بنویسم واسه جابجایی آرایه ها...

ممنون
 

negin17h

مدیر تالارهای مهندسی کامپیوتر و رباتیکمتخصص #C
مدیر تالار
ممنون..

حالا اگه بخوام یه آرایه از ماتریس رو بخونم چی؟...مثلا بگم آرایه سر دوم ستون سوم برابر با یه عدد..
در واقع من تو برنامم یه ماتریس 9*9 دارم که برای هر آرایه یه textbox تعریف کردم....و برای تعریف هر آرایه از ماتریس از کد
double [] x=new double [] l
استفاده کردم..
حال با این کدی که شما گفتی چطوری می تونم آرایه هر ماتریس به یه textbox اختصاص بدم...


این دستور temp چطور باید بنویسم واسه جابجایی آرایه ها...

ممنون

دوست عزیز اول بذار ادبیاتمون رو یکی کنیم. به هر کدام از خانه های ماتریس، درایه میگویند نه آرایه.
در خصوص خواندن یک درایه که تکلیف مشخصه. اگر نام ماتريس شما mat باشه و بخواهید مثلاً درایه سطر 2 و ستون 3 رو بخونید:
کد:
mat[1][2];

اگر میخواهید به textbox دسترسی داشته باشید، باید درایه را به نوع مورد نظر تبدیل کنید یعنی:
کد:
(System.Windows.Forms.Textbox)mat[1][2];

در ضمن در نظر بگیرید که در سی شارپ، ایندکس ماتريس ها و آرایه ها از 0 شروع می شوند. برای همین درایه سطر 2 و ستون 3 معادل با خانه 1 و 2 می باشد.

در خصوص temp ، منظورم دستوری نبود.
ببین شما دو خانه داری که مقادیرش باید جابجا شوند، پس باید یک مقدار را در متغیر temp نگه داری و دیگری را بر روی این مقدار در درایه مورد نظر قرار دهی و سپس مقدار temp را در درایه دیگر بذاری.
فرض کن ماتریس mat و درایه ستون 2 از دو سطر 1 و 2 مد نظر باشد:
کد:
temp = mat[0][1];
mat[0][1]=mat[1][1];
mat[1][1]=temp;
 

mammad.mechanic

عضو جدید
دوست عزیز اول بذار ادبیاتمون رو یکی کنیم. به هر کدام از خانه های ماتریس، درایه میگویند نه آرایه.
در خصوص خواندن یک درایه که تکلیف مشخصه. اگر نام ماتريس شما mat باشه و بخواهید مثلاً درایه سطر 2 و ستون 3 رو بخونید:
کد:
mat[1][2];

اگر میخواهید به textbox دسترسی داشته باشید، باید درایه را به نوع مورد نظر تبدیل کنید یعنی:
کد:
(System.Windows.Forms.Textbox)mat[1][2];

در ضمن در نظر بگیرید که در سی شارپ، ایندکس ماتريس ها و آرایه ها از 0 شروع می شوند. برای همین درایه سطر 2 و ستون 3 معادل با خانه 1 و 2 می باشد.

در خصوص temp ، منظورم دستوری نبود.
ببین شما دو خانه داری که مقادیرش باید جابجا شوند، پس باید یک مقدار را در متغیر temp نگه داری و دیگری را بر روی این مقدار در درایه مورد نظر قرار دهی و سپس مقدار temp را در درایه دیگر بذاری.
فرض کن ماتریس mat و درایه ستون 2 از دو سطر 1 و 2 مد نظر باشد:
کد:
temp = mat[0][1];
mat[0][1]=mat[1][1];
mat[1][1]=temp;
ممنون از کمکتون....;)
 

sara.hoseini90

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

shakibonline

عضو جدید
سلام
من توی پاسکال یه برنامه نوشتم حالا می خوام همونو با سی شارپ بنویسم اما یه چیزیا یی رو نمی دونم می تونید توضیحات برنامه رو اینجا ببینید.
من با حلقه ها تو 30# آشنایی دارم اما نمی دونم آرایه ها رو چه جوری باید تعریف کرد خلاصه چیزی از آرایه ها تو 30# نمی دونم ،لطفا کمکم کنید ، جلو جلو مرســــــــــــــــــــــــــــــــــــــــــــــــی:D
 

mammad.mechanic

عضو جدید
سلام
من توی پاسکال یه برنامه نوشتم حالا می خوام همونو با سی شارپ بنویسم اما یه چیزیا یی رو نمی دونم می تونید توضیحات برنامه رو اینجا ببینید.
من با حلقه ها تو 30# آشنایی دارم اما نمی دونم آرایه ها رو چه جوری باید تعریف کرد خلاصه چیزی از آرایه ها تو 30# نمی دونم ،لطفا کمکم کنید ، جلو جلو مرســــــــــــــــــــــــــــــــــــــــــــــــی:D
واسه تعریف آزایه تو سی شارپ
اگر بخواهید یک متغیر را به صورت آرایه تعرف کنید باید در مقابل نوع متغیر از علامت [] استفاده کنید.
برای مثال کد زیر میتونه 90عنصر را در خود نگهداری کند.



کد:
double[] X = new double[90];
 

shakibonline

عضو جدید
ممنون ،
فقط این آرایه 90 تایی و اسمش x !!!؟؟
برای فراخوانی باید چی کار کرد؟؟ مثلا آرایه ی 10 ..؟؟
 

mammad.mechanic

عضو جدید
ممنون ،
فقط این آرایه 90 تایی و اسمش x !!!؟؟
برای فراخوانی باید چی کار کرد؟؟ مثلا آرایه ی 10 ..؟؟

ببین آرایه ها از صفر شروع میشه...و تا آرایه 89 ادامه داره که در کل میشه 90 تا آرایه.
برای فراخوانی هم کاری نداره
کد:
x[10]=..........;
 
آخرین ویرایش:

senaps

عضو جدید
کاربر ممتاز
سلام.....
اقا من یه مشکل بزرگ دارم،از هر کسی هم می پرسم،نمیتونه به دادم برسه.....معمولا،جواب ها،به سوال من ربط نداره یا الکی اونقد پیچیدش کردن که من می مونم واقعا اینا چرا اینقد برنامه نویسی رو برا خودشون سخت میکنن؟!!


ببینید،مشکل من،تو ارتباط با دیتابیس هاست.......

1- ایا،برای برنامه ای که 4 فرم داره،و همه ی این فرم ها،باید با دیتابیس کار کنن،من باید با دیتابیس وصلشون کنم؟!!!ایا برای این کار،میتونم یه تابع کلی ارتباط با تمام sqlcommand هاش بنویسم،و هر جایی،هر کدوم رو که عشقم کشید،فراخوانی کنم؟!! چه جوری؟! من بلدم یه کانکشن استرینگ بنویسم!! همین و بس!

2- من اگر بخوام،دیتا بیسی که تو دیتابیس منیجمنت سیستم ساختم، رو وصل کنم به برنامه ام،به طوری که دیتاگرید ویو نداشته باشم، و مثلا،هر کدوم از فیلد های مورد نظرم،با یه تکست باکس پر بشه و من بتونم مقدارش رو ذخیره کنم،باید چیکار کنم؟!!!

(در این مورد،منظورم اینه که چجوری باید دیتابیس رو متصل کنم؟! چه جوری باید فرم ها رو تنظیم کنم؟! چه جوری از sqlcommand ها استفاده کنم؟! مثلا دستور sqlcommand ی که برای من، دستور select * from x رو نشون بده،چه شکلیه؟!!!

3- من علاوه بر دیتاگرید ویو،از دیتا بیندینگ نویگیشن هم متنفرم!!!! برای رفت و امد بین رکورد های مختلف،باید چه کدی رو برای دگمه های نکست و اینا بنویسم؟!

راستی،من بلدم یه دیتاسورس درست کنم،بدون اینکه حتی یه خط کد نوشته باشم،داده هایی رو داخل یه تکست باکس بریزم و در بیارم،ولی احساس میکنم که کافی نیست!! دوست دارم،اینجوری باشه که هر جوری من کلاس هام رو مشخص میکنم،اونجوری باشه مطمئنم که میشه،چون کار برنامه نویسیه!!

راستی، کل چیزی که من از کد نویسی در مورد دیتابیس بلدم اینه:

sqlconnection con= new sqlconnetion(" code's")f
اون اف هم به جای سمی کالون اخر گذاشتم!!!! همین.....
بقیش دیگه راهنمایی شما رو می طلبه که باید چی بنویسم و چیکار کنم که کارم درست در بیاد!!!
 

zahra1386

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


ببینید،مشکل من،تو ارتباط با دیتابیس هاست.......

1- ایا،برای برنامه ای که 4 فرم داره،و همه ی این فرم ها،باید با دیتابیس کار کنن،من باید با دیتابیس وصلشون کنم؟!!!ایا برای این کار،میتونم یه تابع کلی ارتباط با تمام sqlcommand هاش بنویسم،و هر جایی،هر کدوم رو که عشقم کشید،فراخوانی کنم؟!! چه جوری؟! من بلدم یه کانکشن استرینگ بنویسم!! همین و بس!

2- من اگر بخوام،دیتا بیسی که تو دیتابیس منیجمنت سیستم ساختم، رو وصل کنم به برنامه ام،به طوری که دیتاگرید ویو نداشته باشم، و مثلا،هر کدوم از فیلد های مورد نظرم،با یه تکست باکس پر بشه و من بتونم مقدارش رو ذخیره کنم،باید چیکار کنم؟!!!

(در این مورد،منظورم اینه که چجوری باید دیتابیس رو متصل کنم؟! چه جوری باید فرم ها رو تنظیم کنم؟! چه جوری از sqlcommand ها استفاده کنم؟! مثلا دستور sqlcommand ی که برای من، دستور select * from x رو نشون بده،چه شکلیه؟!!!

3- من علاوه بر دیتاگرید ویو،از دیتا بیندینگ نویگیشن هم متنفرم!!!! برای رفت و امد بین رکورد های مختلف،باید چه کدی رو برای دگمه های نکست و اینا بنویسم؟!

راستی،من بلدم یه دیتاسورس درست کنم،بدون اینکه حتی یه خط کد نوشته باشم،داده هایی رو داخل یه تکست باکس بریزم و در بیارم،ولی احساس میکنم که کافی نیست!! دوست دارم،اینجوری باشه که هر جوری من کلاس هام رو مشخص میکنم،اونجوری باشه مطمئنم که میشه،چون کار برنامه نویسیه!!

راستی، کل چیزی که من از کد نویسی در مورد دیتابیس بلدم اینه:

sqlconnection con= new sqlconnetion(" code's")f
اون اف هم به جای سمی کالون اخر گذاشتم!!!! همین.....
بقیش دیگه راهنمایی شما رو می طلبه که باید چی بنویسم و چیکار کنم که کارم درست در بیاد!!!

سلام دوست عزیز

والا به نظر من نیازی به تعریف تابع و اینا نداری! کافیه چند تا کار کوچیک انجام بدی تا به دیتابی وصل بشی و ازش اطلاعات بخونی یا بریزی توش...من مراحلی رو که خودم معمولا استفاده میکنم برات مینویسم ...البته دوستان دیگه تجربه و اطلاعاتشون خیلی بیشتر از منه ایشالا اونا هم کمکت میکنن:smile:

اولین کاری که من انجام میدم اینه :

کد:
SqlConnection cnc = new SqlConnection();
        SqlCommand cmd = new SqlCommand();
        SqlDataReader dr;


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


کد:
cnc.ConnectionString = "Server=110-PC\\SQLEXPRESS;DataBase=database;Integrated Security=True";
            cmd.Connection = cnc;


از این به بعد شما خیلی راحت میتونی توی هر رویدادی که خواستی کوئری بنویسی و نتیجه رو توی تکست باکس یا هر چیز دیگه نشون بدی...مثلا من توی رویداد کلیک روی دکمه ی نمایش این دستورات رو نوشتم:


کد:
 cnc.Open();
            cmd.CommandText = "select name,family from bimar where " + "ID='" + textBox3.Text + "'";
            

            dr = cmd.ExecuteReader();
            while (dr.Read() == true)
            {
             
                comboBox6.Items.Add(dr["name"]);
                comboBox7.Items.Add(dr["family"]);

            }
            cnc.Close();


همون طور که میببینی من بر اساس ID بیمار اطلاعاتی رو از جدول "بیمار" خوندم و برای نمایششون اونا رو توی کمبو باکس ریختم...به همین راحتی به همین خومشزگی:)

امیدوارم دوستان بهتر بتونن کمکت کنن:smile:
 

Similar threads

بالا