در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

پایگاه داده Sql Server در سی شارپ (بخش چهارم)

همانطور که در *بـخش قــبلی * در مورد اینکه چطور به یک پایگاه داده SQL Server متصل شویم. صحبت شد.

در این بخش یاد میگیریم که در سی شارپ چطور به رکورد های جدول workers دست پیدا کنیم

همانطور که می دانید برنامه نویسی بدون پایگاه داده بی فایده است . پس جهت دیدن این سری از مطالب در ITPRO بـــمانید.

پایگاه داده Sql Server در سی شارپ (بخش چهارم)

برای اینکه بین رکورد های ذخیره شده در جدول حرکت کنیم به یک Dataset و یکDataAdapter نیاز داریم.

تعریف:

Dataset: جایی است که تمام داده هایی که از جدول پایگاه داده گرفته ایم در آن ذخیره می شوند و ضمن اینکه Dataset باید با داده پر شود.

DataAdapter: شیء اتصال (Connection Object) و DataSet نمیتوانند یکدیگر را پیدا کنند بنابراین به یک واسط نیاز دارند تا آنها را به هم بشناساند و این کار بر عهده DataAdapter است. در واقع نقش DataAdapter این است که Dataset را با رکوردهای پایگاه داده پر کند.

برای ایجاد یک Dataset کد زیر را خارج از رویداد Load مربوط به فرم سی شارپ مینویسیم. در واقع ما اینجا یک Dataset با نام ds1 ایجاد می کنیم

DataSet ds1;

سپس دستور زیر را درون رویداد Load مربوط به فرم سی شارپ می نویسیم

ds1 = new DataSet();

برای دسترسی کاربران نیز میتوان از تصویر زیر استفاده نمود(اختیاری)

پایگاه داده Sql Server در سی شارپ (بخش چهارم)

میتوان کد هایی که تا به حال نوشتیم (درس قبل) در تصویر زیر مشاهده نمود

پایگاه داده Sql Server در سی شارپ (بخش چهارم)

برای DataAdapter نیز دستور زیر را خارج از رویداد Load فرم سی شارپ طبق کد زیر و ضمناً در اینجا ما یک نمونه یا یک شیء DataAdapter با نام da ایجاد می کنیم

System.Data.SqlClient.SqlDataAdapter da;

درون رویداد Load فرم هم یک شیء از متغیر da ایجاد می کنیم:

string sql = “SELECT * From tblWorkers”;
da = new System.Data.SqlClient.SqlDataAdapter( sql, con ); 

دستور زیر

string sql = “SELECT * From tblWorkers”;  

یک متغیر رشته ای(String) با نام sql ایجاد می کند و عبارت SELECT From tblWorkers هرچیزی را از جدول tblWorkers انتخاب می کند. و در ادامه این مقادیر انتخاب شده در متغیر sql ذخیره می شوند.SELECT که در دستور فوق استفاده شده به معنای “انتخاب کردن” می باشد یعنی انتخاب کن از جدول X همه رکورد ها را یعنی بعد از SELECT علامت آمده که به معنای “همه رکوردها” است. پس SELECT به معنای “انتخاب همه رکوردها” است. بعد از هم کلمه From به معنای “از” آمده و بعد از این کلمه هم نام جدولی که می خواهیم از آن رکوردهایی را انتخاب کنیم می آید. پس عبارت SELECT * From tblWorkers به معنای “انتخاب همه رکوردها از جدول tblWorkers” است. شیء DataAdapter از دستور SQL برای گرفتن رکوردها از پایگاه داده استفاده می کند. اما باید به DataAdapter بگوییم از کدام شیء اتصال استفاده کند. برای این منظور، در میان پرانتزها از sql, con استفاده می کنیم:

( sql, con );

عبارت اول داخل پرانتز، رکوردهایی که باید توسط DataAdapter گرفته شوند مشخص می شود که این رکوردها در مثال بالا در متغیر sql ذخیره شده اند. و عبارت دوم داخل پرانتز، جایی که باید رکوردها از آن جا گرفته شوند مشخص می شود که در مثال بالا con مشخص کننده این موضوع است

پایگاه داده Sql Server در سی شارپ (بخش چهارم)

برای پر کردن dataset از رکوردهای موجود در پایگاه داده، میتوان از DataAdapter و دستور مربوط به آن Fill استفاده می کنیم

da.Fill( ds1, “Workers” ); 

دستور فوق Dataset ما را که ds1 نام دارد، از رکوردها پر می کند. در میان پرانتز مربوط به دستور بالا، ابتدا نام Dataset را می نویسیم و سپس از کاما هم یک نام برای این پر کردن می نویسیم. نامی که ما به این عمل پر کردن می دهیم Workers است. دقت داشته باشید که این نام یک رشته است و باید بین ۲ دابل کوتیشن قرار گیرد. دستور فوق حتماً باید را قبل از دستور ;()con.Close وارد شود. خوب حالا رکوردهای موجود در پایگاه داده ما در یک Dataset با نام ds1 ذخیره شدند و می توانیم آنها را درون فرم سی شارپ نمایش دهیم. نمایش داده های یک Dataset تا اینجا ما یک Dataset با نام ds1 داریم که با رکوردهایی از جدول پایگاه داده پر شده است

Display Data from a Dataset in C# .NET

نمایش داده هایی که در dataset ذخیره شده اند:

ما هنوز نمی توانیم این رکوردها را ببینیم. می بایست رکوردها را در یک فرم نمایش دهیم. می خواهیم داده ها را در TextBoxهایی قرار دهیم. برای این منظور ۳ TextBoxو ۳ label به فرم اضافه می کنیم

پایگاه داده Sql Server در سی شارپ (بخش چهارم)

میخواهیم وقتی فرم بارگذاری می شود اولین رکورد از Dataset در TextBox ها نمایش داده شود. برای این منظور با استفاده از یک متد که خودمان تعریف می کنیم کار را انجام خواهیم داد. برای تعریف این متد، بعد از رویداد Load فرم سی شارپ ، یک متد جدید با نام NavigateRecords اضافه کنید. این متد قرار نیست چیزی را برگرداند پس می توانید آن را از نوع void ایجاد کنید.

همانطور که از اسم این متد پیدا هست ما میخوایم بر روی رکور های موجود در پایگاه داده ها حرکت کنیم.

درون این متد یک متغیر از نوعDataRow و با نام dRow تعریف می کنیم

DataRow dRow = ds1.Tables["Workers"].Rows[0];

همانطور که میدانید در سی شارپ پس از وارد کردن یک دات یا نقطه پنجره ای باز خواهد شد به نام پنجره intelicence که کار را برای برنامه نویسان بسیار ساده کرده است

لذا پس از وارد کردن نام Dataset و زدن یک نقطه، پنجره intelicence باز میشود که شامل لیستی است در این لیست Tables را انتخاب میکنیم. Tables یک کلکسیون (مانند آرایه) است و لیستی از جداول در دسترس را ذخیره می کند. برای این که به سی شارپ بگوییم کدام جدول را می خواهیم، نام آنها را در میان یک براکت و ۲ دابل کوتیشن می نویسیم (ما در اینجا Workers را نوشته ایم). بعد از آن دوباره یک نقطه می گذاریم و دوباره لیستی ظاهر می شود، در این لیست Rows را انتخاب کنید. در میان براکت ها نیز شماره سطری که می خواهیم را قرار می دهیم. شماره اولین سطر جدول صفر است. همانند تصویر زیر کد های ما این چنین است

پایگاه داده Sql Server در سی شارپ (بخش چهارم)

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

dRow.ItemArray.GetValue(1).ToString()

در اینجا ما ابتدا شیء Row را که آن را dRow نام گذاری کرده ایم، آورده ایم و بعد از گذاشتن یک نقطه، از لیستی که ظاهر می شود ItemArray را انتخاب می کنیم. این آرایه ای است از تمام آیتم هایی (ستون ها) که در Row ما وجود دارد.

جهت یاد آوری در درس های گذشته پایگاهی که ایجاد کردیم دارای یک جدولی بود که دارای ۴ ستون بود

WorkerID، firstname، lastname و jobtitle. ItemArray

ما در SQL Server گفتیم که چه نوع داده ای در ستون Worker_ID قرار خواهد گرفت. در قسمت Data Type کلیک کردیم مانند تصویر زیر

پایگاه داده Sql Server در سی شارپ (بخش چهارم)

مطابق شکل انواع داده ای زیادی ظاهر می شوند، ما از این لیست int را انتخاب کردیم.

پایگاه داده Sql Server در سی شارپ (بخش چهارم)

یک خصوصیت دیگر هم که باید با این ستون بدهیم Identity Specification است. Is Identity را Yes قرار دهید تا Identity Increment و Identity Seed ظاهر شوند

پایگاه داده Sql Server در سی شارپ (بخش چهارم)

با قراردادن این مقادیر sql server با اضافه شدن هر کارمند جدید به جدول مقدار ۱ را به Worker_ID اضافه می کند.

نکته:اگر بخواهیم SQL Server به صورت نرمال هربار یک عدد اضافه کند به این ستون ، تیک گزینه Allow Null را هم باید خالی بگذاریم .یعنی این ستون نمیتواند خالی رها ود و حتماً دارای مقدار باشد هرچند پر کردن مقدار این ستون را خود Sql به عهده گرفته است

بنابراین WorkerID به علت اینکه تنظیمات اش را از صفر شروع می شود آیتم شماره صفر خواهد بود، firstname آیتم شماره ۱، lastname آیتم ۲ و jobtitle آیتم ۳ است. بعد از یک نقطه(دات) دیگر، لیستی دیگر ظاهر می شود. از این لیست GetValue را انتخاب می کنیم. GetValue مقادیر را از ستون های جدول می گیرد. بین پرانتزهای مربوط به GetValue ما نیاز به تعداد آیتم های از آرایه داریم. GetValue به ستون first_name از Dataset مراجعه می کند.و در نهایت ما نیاز به تبدیل کردن آن به یکstring داریم که این کار را با متد ToString() انجام می دهیم.

متد Tostring هم متدی است که خود مایکروسافت در BCL گنجانده شده است و متدی است آماده و ما فقط برای استفاده نیاز به صدا زدن این متد داریم ، سپس وقتی به یک رشته تبدیل شد میتوان آن را درون یک TextBox قرار داد. در آخر باید متد NavigateRecords همانند تصویر زیر می باشد

پایگاه داده Sql Server در سی شارپ (بخش چهارم)

textBox1.Text = ds1.Tables["Workers"].Rows[0].ItemArray.GetValue(1).ToString();

البته اگر میخواهید میتوانید از متد contains استفاده کنید البته این متد زمانی کاربرد دارد که می خواهیم بدانیم که آیا یک رشته شامل کارکترهای مشخصی می باشد یا خیر. کاربرد این متد بسیار آسان است. به مثال زیر توجه کنید:

پایگاه داده Sql Server در سی شارپ (بخش چهارم)

در مثال بالا که واضح است اگر کارکتر “–” در رشته ما موجود باشد یک پیغام True به صورت messagebox نمایش داده می شود .

مثال بالا به صورت کاملاً اختیاری بود بر میگردیم به مثال خودمان

در نهایت کاری که باید انجام دهیم این است که، یک فراخوانی به متد NavigateRecords ایجاد کنیم. برای این کار دستور ;()NavigateRecords را قبل از دستور ;()con.Close وارد کنید:

پایگاه داده Sql Server در سی شارپ (بخش چهارم)

با اجرای برنامه باید چیزی شبیه به تصویر زیر را مشاهده کنید

پایگاه داده Sql Server در سی شارپ (بخش چهارم)

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

پایگاه داده Sql Server در سی شارپ (بخش چهارم)

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

البته بنده خیلی خلاصه این قسمت را توضیح میدهم امید است در ادامه این موضوع را مفصل تر بررسی نماییم.

پایگاه داده Sql Server در سی شارپ (بخش چهارم)

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

پایگاه داده Sql Server در سی شارپ (بخش چهارم)

اگر از messagebox استفاده نکنیم و کد ها را در بلاک if نگذاریم با پیغام IndexOutOfRange که از سوی خود سی شارپ صادر می شود برخورد میکنیم.

در قسمت بعدی جابجایی بین رکوردها را به صورت مفصل و دقیق تر بررسی خواهیم نمود

پایگاه داده Sql Server در سی شارپ (بخش اول)

پایگاه داده Sql Server در سی شارپ (بخش دوم)

پایگاه داده Sql Server در سی شارپ (بخش سوم)

با ما در Itpro بمانید جهت ادامه این سری از مطالب

نویسنده : فرهاد خانلری

منبع : انجمن تخصصی فناوری اطلاعات ایران

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد

#آموزش_کار_با_سی_شارپ_و_sql #c#_و_پایگاه_sql #آموزش_کار_با_sql_server #کار_با_sql_در_سی_شارپ #آموزش_sql_سرور #پایگاه_داده_در_سی_شارپ #آموزش_sql #اتصال_به_پایگاه_داده_sql #آموزش_پایگاه_داده_sql
عنوان
1 پایگاه داده Sql Server در سی شارپ (بخش اول) رایگان
2 پایگاه داده Sql Server در سی شارپ (بخش دوم) رایگان
3 پایگاه داده Sql Server در سی شارپ (بخش سوم) رایگان
4 پایگاه داده Sql Server در سی شارپ (بخش چهارم) رایگان
5 پایگاه داده Sql Server در سی شارپ (بخش پنجم) رایگان
زمان و قیمت کل 0″ 0
0 نظر

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

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره تابستانه می تونی امروز ارزونتر از فردا خرید کنی ....