PDA

View Full Version : پیمایش رکورد های جدول در C#



alihassanabadi
پنج شنبه 08 اسفند 1387, 20:53 عصر
با سلام به همه دوستان گل برنامه نویس
شاید تا کنون در بعضی از برنامه هاتون به این نیاز رسیده اید که رکوردهای
جدولتون رو پیمایش کنید منم چون زیاد باهاش برخورد داشتم گفتم این مطلب رو اینجا بزارم تا بچه ها
ازش استفاده کنن در C# دو تا ابزار وجود داره که این کار رو به سادگی انجام میدن فقط یه ذره خیلی کم نیاز به کدنویسی داره البته روش دوم گرچه روشهای دیگری نیز برای پیمایش رکورد وجود داره
ابزارها:BindingNavigator و BindingSource
Bindingnavigator:برای نمایش وهدایت دستی داده ها است.در اکثر موارد این دو ابزار با هم استفاده میشن
به طور پیش فرض کنترل bindingnavigator ترکیب شده از چند باتون وتکست است که برای حرکت بین رکوردهای یک جدول ,عملیات حذف, اضافه و… میباشد
Bindingsource نیز دارای خاصیت datasource می باشد که میتوان جدول مورد نظر را به آن ربط داد
البته میتوان این کار را با کد انجام داد که من روش دوم رو انتخاب میکنم روش دوم رو با sql server میگم
روش اول:ابتدا یک bindingsourceویک bindingnavigator از toolbox به پروژتوت اظافه کنید
حالا از خصوصیات مربوط به 1bindingsource روی دیتا سورس(datasource) کلیک کنید وAdd Project Data Source رو بزنید از پنجره باز شده database رو انتخاب کنید ودکمه next رو بزنید
حالا new connection رو کلیک کنید در این پنجره میتونید با کلیک بر روی دکمه change نوع پایگاه دادتون رو انتخاب کنید شکل زیر

http://barnamenevis.org/forum/C:\Documents and Settings\Ali\Desktop\New Folder (2)\untitled.JPG

http://barnamenevis.org/forum/C:\Documents and Settings\Ali\Desktop\New Folder (2)\2.JPG
بعد از زدن دکمه چنج در پنجره بعد چون میخوایم از اکسس استفاده کنیم
Microsoft Access Database File رو انتخاب وok رو بزنید
حالا میتونید روی دکمه browse کلیک کنید و پایگاه دادتون رو که mdb است انتخاب کنید
در پایان با زدن دکمه ok پس از انتخاب پایگاه داده دو بار next رو بزنید سپس جدول دلخواه
رو انتخاب کنید مانند شکل زیر

http://barnamenevis.org/forum/C:\Documents and Settings\Ali\Desktop\New Folder (2)\4.JPG
در پایان finish رو بزنید نا گفته نمونه با این کار یه دیتاست به پروژتون اضافه میشه
دوباره از properties مربوط به bindingsource1 ------datamembere ش رو به
جدولتون ربط بدین
حالا رو bindingnavigator کلیک کنید واز properties ش bindingsource رو به bindingsource1 تنظیم کنید
حالا به تعداد فیلد هاتون به فرم textbox اضافه کنید حالا باید خاصیت text مربوط به تکست باکس ها رو به فیلد دلخواه تنظیم کنید برای این کار از properties هر کدام از تکست باکسها این کار رو انجام بدین
علامت + بغلدست bindingsource رو بزنید حالا از زیر منوی باز شده از خاصیت text بعد از باز شدن کشو علامت+ بغلدست bindingsource1 رو بزنید و فیلد رو انتخاب کنید.
برای sqlserver نیز دقیقا شبیه به مراحل بالا عمل میکنیم
فقط در استفاده از اکسس با تغیر مسیر پایگاه داده برنامه اجرا نمیشه

روش دوم:
با استفاده از کد نویسی که خیلی عالیه
یادتون باشه من واسه روش دوم از sql server 2000 استفاده کردم وپایگاه داده نیز attach شده
فقط یه bindingnavigator به پروژتون اضافه کنید
حالا کد زیر رو در page_load فرم بنویسید

SqlDataAdapter adapter1 = new SqlDataAdapter("select *from tblname", "connectionstring");
DataSet dataset1 = new DataSet();
adapter1.Fill(dataset1, "tblname");
BindingSource bs = new BindingSource(dataset1, "tblname");
this.txtname.DataBindings.Add(new Binding("Text", bs, "name", true));
txtfamily.DataBindings.Add(new Binding("Text", bs, "family", true));
txttel.DataBindings.Add(new Binding("Text",bs , "tel", true));
txtaddress.DataBindings.Add(new Binding("Text", bs, "address", true));

this.BindingNavigator.BindingSource1 =bs;
البته باید System.Data.SqlClien رو به سورستون using کنید تا بتونین از دستورات sql استفاده کنید
اگه با مشکل مواجه شدید لطفا نظر بدید
خداوکیلی خیلی سعی کردم درست توضیح بدم خلاصه ببخشید اگه بد توضیح دادم
با تشکر از همه دوستان.
سعادت دیگران بخش مهمی از خوشبختی ماست

hasan_esfahan
پنج شنبه 08 اسفند 1387, 22:55 عصر
البته خیلی سادتر هم می شه کافی یک دیتاست ایجاد کنید به دیتاست پایگا هتون را وصل کنید و در اخر BindingNavigator را به دیتا ست وصل کنید که در این روش حتی می تونید کوئری بسازید و الی اخر

khz-web1
جمعه 30 اسفند 1387, 21:10 عصر
در صورتی که بخواهید روی سطرهای دیتا گرید ویو حرکت کنید...



{
BindingSource binding = new BindingSource();
binding.DataSource = ds;

this.BindingNavigator1.BindingSource = binding;
DataGridView1.DataSource = binding;
//tried ds and dt here too
}

vahid2009
یک شنبه 02 فروردین 1388, 21:03 عصر
آیا با این روش میشه از درج رکورد های تکراری جلوگیری کرد؟

hasan_esfahan
دوشنبه 03 فروردین 1388, 11:55 صبح
در این روشهای تاپیک دو و سه اصولا کد نویسی کم است با ایجاد کوئری کار راحت است و شما می تونید با یک خط چک کنید اگر رکود تکراری بود ذخیره نشه


tableadapter.scaler1(textbox1.tex);

کوئری که شما ایجاد کردید سپس این خط فراخوانی کوئری می باشد

g_monireh
چهارشنبه 28 تیر 1391, 17:06 عصر
من نميخام با كنترل باندينگ نويگيتور ركوردها رو پيمايش كنم!
يكسري تكس باكس دارم ميخام چهار تا دكمه بزارم كه توي اين چهارتا دكمه كدهاي مربوط به پيمايش ركورد به جلو و عقب هست.اگه ممكنه كدها رو برام بزاريد.ممنون ميشم.