![]() |
![]() |
|
| کامپیـــــوتر ، فناوری اطلاعات |
|
با سلام خدمت دوستان تو این پست می خوام راجع به یکی از کارهای جالب مایکروسافت تو ویژوال استودیوی 2008 ، به طور خیلی مختصر و در حد آشنایی ابتدایی صحبت کنم احتمالا کسانی که با ویژوال استودیوی 2008 کار کردند سرآید using System.Linq رو دیدن ولی آیا از خودتون هم پرسیدید که این به چه دردی می خوره ... من برای کاری نیاز به کار کردن با پایگاه داده داشتم و در محیط ADO.Net مشغول Query نوشتن و کار با پایگاه داده بودم . من خودم هم تا اون روز زیاد توجهی به این سرآیند نداشتم ... ولی ... البته Linq این امکان رو برای شما فراهم میکنه که روی لیست و آرایه هم query بنویسید . که من کاری به اون ندارم ... من یه پایگاه داده از قبل آماده کردم ... شما یه پروژه ی جدید ایجاد کنید و پایگاه داده ی خودتون رو بهش اضافه کنید ...یادتون نره که سرآیند using System.Data.Sqlclient رو حتما اضافه کنید . روی فرم تون یه DataGridView و یه Button از توی toolbox درگ اند در اپ (drag and drop)کنید ... اول کار با ADO.Net رو میگم ...روی دکمه دوبار کلیک کنید تا Event کلیک رو ایجاد کنه ... تو خود همون تابع برای کلیک دکمه این کد ها رو بنویسید ... من هم براتون توضیح مختصری برای هر کدومش میدم ...
ما زمانیکه با SQL Server کار می کنیم اول کار باید به پایگاه داده وصل بشیم ...تا زمانیکه به پایگاه داده اتصال دارید می تونید باهاش کار کنید ... چه قدر خوب میشد که ما یه نسخه از پایگاه داده ای که لازم داریم یا حداقل بخشی از اون رو میتونستیم به صورت آفلاین استفاده کنیم و موقعی که میخواستیم این تغییرات در پایگاه داده ثبت بشه بهش متصل میشدیم و اونها رو سابمیت می کردیم ... ایده ی ADO.Net هم همینه ما ملزومات خودمون از پایگاه داده رو شامل جداول مورد احتیاج یا کل اون رو توی ram کامپیوتر تون بارگذاری میشه و د تغییرات رو روی اون اعمال میکنیم و بعد از اینکه کار شما تموم شد و یا هر موقع دیگه میتونیم به پایگاه دادمون متصل شیم و تغییرات رو هم روی اون اعمال کنیم ... برای اتصال به پایگاه داده اول باید یه ConnectionString بسازید این کار رو این طوری انجام بدید ... فقط به جای SellingDB اسم پایگاه داده ی خودتون رو بزارید. SqlConnection con=new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\SellingDB.mdf;Integrated Security=True;User Instance=True"); در مرحله بعدی یک query بنویسید که چه اطلاعاتی رو از کدوم جدول می خواهید بازیابی کنید ... string query = "SELECT * FROM UserTBL;"; من توی این Query ساده گفتم که تمام اطلاعات جدول UserTBL رو میخوام (این یکی از جداول پایگاه داده ی من می باشد)... حالا با استفاده از این دوتا (SqlConnection و رشته ی query ) یه دستور sql می سازم ... SqlCommand cmd = new SqlCommand(query, con); حالا برای اینکه اطلاعات رو بتونیم تو کامپیوتر خودمون داشته باشیم باید یه شی از DataSet بسازیم و اون رو با یه SqlDataAdapter که به پایگاه داده وصل میشه(با استفاده از ConnectionString) و اطلاعات مورد احتیاجمون رو میگیره (با استفاده از SqlQueryString) و توی یه DataSet یا DataTable میریزه و برا ما نگه میداره ، از اطلاعات درخواستی پر کنیم ... بعد از اینکار حالا میخوایم اطلاعات رو توی DataGridView که قبلا روی فرممون درست کرده بودیم (قصد اعمال تغییرات روی DataSet رو نداریم ولی این کار رو هم به راحتی میتونیم انجام بدیم) ، نشون بدیم. DataSet ds = new DataSet(); SqlDataAdapter tblAdaptor = new SqlDataAdapter(cmd); tblAdaptor.Fill(ds); DataView dv = ds.Tables[0].DefaultView; dataGridView1.DataSource = dv; حالا تمام این کارا رو با سه خط ساده ی Linq انجام میدیم ... روی پروژتون توی Solution Explorer کلیک راست کنید و گزینه Add New Item رو بزنید در قسمت سمت چپ پنجره ای که جلوتون باز میشه Data رو انتخاب کنید و Linq to Sql Class رو انتخاب کنید و در پایین اسم دلخواهتون رو به اون بدید(من Mylinq.dbml گذاشتم) و کلید تایید رو بزنید ...
خب روی دکمه ای که روی فرمتون هست کلیک کنید و کدهای قبلی که نوشتید رو یا کامنت کنید یا پاک کنید ... حالا کد زیر رو تایپ کنید ... خب بعد از اینکه کلاس رو به پروژتون اضافه کردید، خود ویژوال استودیو یک کلاس (برای من) به اسمه MylinqDataContext میسازه . یه شی از اون بسازید و query خودتون رو این طوری باید بنویسید.
MylinqDataContext db = new MylinqDataContext(); var result = from user in db.UserTBL select user; result مقداریه که برمیگردونه و user هم یه شی از جدول یا جدول هایی هست که جلوی عبارت in میان ... خب حالا خیلی راحت ما این رو توی DataGridView نمایش میدیم dataGridView1.DataSource = result;
این چیزایی که من گفتم فقط یه دستور select ساده بود شما خودتون میتونید دستورات پیچیده تر رو هم امتحان کنید و ببیند که چطور به شما امکانات code intellisense و راحتی کدنویسی و کم کردن حجم کدنویسی رو میده ... من این نمونه برنامه رو توی لینک زیر میزارم تا اگه خواستید یه نگاه بندازید ...البته قبلش بگم که توی SQL Server Express Edition وقتی شما ConnectionString می سازید یه ذره الکی گیر میده و بعضی وقتا موقع اتصال به پایگاه داده با خطا مواجه میشد ... این کدها تست شده و سالم هستند... موفق باشید |
|
+ نوشته شده در
دوشنبه بیست و هفتم آبان 1387ساعت 2:40 قبل از ظهر توسط محمـــد |
|
|
صفحه نخست پست الکترونیک آرشیو |
| درباره وبلاگ |
|
نوشته شده توسط دانشجویان فناوری اطلاعات و کامپیوتر دانشگاه پرند |
| این منــمـــــــا |
|
| ساعت به وقت تهران |
| نوشته های پیشین |
|
شهریور 1388 بهمن 1387 آبان 1387 مهر 1387 اسفند 1386 |
| آرشیو موضوعی |
|
عمـــــــــومی ┼┬─┴┬├ دانلــــــــودهــا کامپـیـــوتر(برنامه های کاربردی، ...) برنامه نویسی(Web & Wndows App ,Algorithms) معماري كامپيوتر و شبكه |
| نویسندگان |
|
محمـــد مجیـــــد |
| پیوندها |
|
وبلاگ یونیـــکورن داش علیــرضای خودمــون ترفنـــدهــای جـــــــــالب ACM دانشجویان دانشگاه پرند وبلاگ خودم - حرف دل اینا ;) |
|
RSS
|