PDA

View Full Version : ارتباط DATAGRIDVIEWو DATASET



reza_Nazem
سه شنبه 18 اردیبهشت 1386, 15:53 عصر
بابا من حسابی قاطی کردم. آخر نفهمیدم ارتباط سطر های DATAGRIDVIEW و DATASET چه طوریه مثلا اگه من یه سطر از DATAGRIDVIEW رو انتخاب کنم چه طوری میتونم سریعا سطر مرتبط با اون رو در DATSET پیدا کنم

ghafoori
سه شنبه 18 اردیبهشت 1386, 21:31 عصر
دوست عزیز بهترین راه حلش فیلد کلید شمار سطر داخل گرید را بدست می اورید بعد با استفاده از ان سطر داخل دیتا ست را بدست می اورید

reza_Nazem
چهارشنبه 19 اردیبهشت 1386, 11:36 صبح
فیلد کلید شمار سطر داخل گرید را بدست می اورید


منظورتان tag است ؟
باید ان را baind کنم ?
من واقعا شرمنده ام تازه vb.net را شروع کردم

ghafoori
چهارشنبه 19 اردیبهشت 1386, 14:37 عصر
منظور از فیلد کلید فیلدی است که هیچگاه در دو رکورد مقدارش مساوی نمی شود به عبارت دقیقتر این مقدار در هر رکوردی یکتاست ودیگر تکرار نمی شود مانند کد ملی یا شماره دانشجویی چون این فیلد یکتاست پس براساس ان داخل دیتاست مس توان جستجو کرد و نهایتا یک رکورد را بدست اورد که همان رکورد مورد نظر شماست

reza_Nazem
یک شنبه 23 اردیبهشت 1386, 10:38 صبح
ممنون رفیق حالا من باید طریقه جستجو در داخل dataset رو پیدا کنم

راهی نیست که بشه بین سطر های datagridview و dataset ارتباط برقرار کرد که پس از کلیک کردن روی یک سطر از datagrid مستقیما شماره سطر dataset رو بده یا روشی که احتیاج به جستجو نداشته باشه

hamidyha
یک شنبه 23 اردیبهشت 1386, 11:35 صبح
نمی دونم منظور شما رو درست فهمیدم یا نه فایل ضمیمه را نگاه کن

ghafoori
دوشنبه 24 اردیبهشت 1386, 07:12 صبح
در 2005 بین جدول و دیتاست یک کنترل بنام bindingsource قرار می گیرد که قابلیت جستجو و دادن رکورد فعلی را دارد

راهی نیست که بشه بین سطر های datagridview و dataset ارتباط برقرار کرد که پس از کلیک کردن روی یک سطر از datagrid مستقیما شماره سطر dataset رو بده یا روشی که احتیاج به جستجو نداشته باشه
چون گریدویو می تواند سطرها را مرتب کند پس ترتیب در ان بهم می خورد در ان صورت تنها راه پیدا کردن ان همین راه جستجو است یا اینکه قابلیت جستجو را از کار بیاندازید

reza_Nazem
چهارشنبه 26 اردیبهشت 1386, 11:22 صبح
بهترین راه جستجو در یک dataset بر اساس کلید اصلی چیست؟

ghafoori
چهارشنبه 26 اردیبهشت 1386, 23:06 عصر
با استفاده از متد find خود binding source به این صورت


OstadSource.Find("Id","2")

OstadSource نام binding source و id نام ستون جدول و عدد 2 هم مقداری است که باید پیدا شود

kahouri
شنبه 16 مهر 1390, 00:43 صبح
با استفاده از متد find خود binding source به این صورت


OstadSource.Find("Id","2")

OstadSource نام binding source و id نام ستون جدول و عدد 2 هم مقداری است که باید پیدا شود

سلام خسته نباشید
من هم همین مشکل را دارم ولی شماره ID رو از datagridview گرفتم فقط نمیدونم چطور میشه اون مقداری رو که گرفتم از تو دیتاست از فیلد ID پیداش کنم و برم به اون رکورد و تمام فیلد های موجود رو به تکست باکس ها بدم.... خیلی فوریه
ممنون میشم جواب بدید.
Email: Sadegh_kahouri@yahoo.com

ali_md110
شنبه 23 مهر 1390, 00:18 صبح
SqlConnection CNN = new SqlConnection("رشته اتصال به بانک برنامه ConnectionSrting");
SqlDataAdapter DAP = new SqlDataAdapter("دستور سلکت جهت پرکردن داده درون گراید", CNN);
DataTable DT=new DataTable();
DAP.Fill(DT);
dataGridView1.DataSource=DT;
//-----------------------//
for (int i = 0; i < DT.Rows.Count; i++)
{

//با توچه به نوع ستون مورد نظر که در بنده حلقه آمده عمل تبدیل را در سطر زیر فراموش نکنید
// مثلن
// Convert.ToInt32(dataGridView1.CurrentRow.Cells["نام ستون یا ایندکس ستون دیتاگرایدتون"].Value)
// Convert.ToInt32(DT.Rows[i]["نام سنون مورد نظر در بانک"])
if ((dataGridView1.CurrentRow.Cells["نام ستون یا ایندکس ستون دیتاگرایدتون"].Value) = (DT.Rows[i]["نام سنون مورد نظر در بانک"]))
{
// نتیجه را میتوانید در اینجا مشاهده کنید
MessageBox.Show(DT.Rows[i][" رکورد ستون مورد نظر در دیتاست "].ToString());

}
}

M.KH-SH
شنبه 23 مهر 1390, 00:50 صبح
کاری به کلید اصلی نداشته باشین

دیتاست اطلاعاتی رو که داریم توی دیتاگرید ویو میبینیم در خودش داره
حالا باید بهش بگیم که فلان تیبل رو انتخاب کن

مثلا در رویداد کلیک دیتاگرید ویو بنویس :::

اول سلکت ایندکسی رو که رو انتخاب کردی رو جدا کنه (اینتیجر هستش)

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


ds.Tables("Table name").Rows(DataGridView1.CurrentRow.Index).Item("نام آیتم مورد نظر")

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

ds.Tables("Table name").Rows(DataGridView1.CurrentRow.Index).Item(2)

امیدوارم مفید بوده باشه

FastCode
شنبه 23 مهر 1390, 02:18 صبح
((DataRowView)DataGridView1.CurrentRow.DataBoundIt em)

Code Golf ه؟

ahmadreza517
شنبه 23 مهر 1390, 17:11 عصر
به تنها برنامه نویس هستی
سلام دوست عزیز

شما می تونید با استفاده از activex
SqlDataAdapter
SqlDataCommand
DataSet

برنامه خودتونو بنوبسید
مزیتش اینه که با انتخاب سطر در DataGridView سطر مجاور اون در DataSet انتخاب می شه .
اگه نتونستی بگو نمونه پروژه بزارم

reza-alavi
چهارشنبه 27 مهر 1390, 10:58 صبح
منم سلام به شما جناب ahmadreza517
با توجه به مطلب شما كه «مزیتش اینه که با انتخاب سطر در DataGridView سطر مجاور اون در DataSet انتخاب می شه .» آيا عكس اين مطلب هم صادقه كه با حركت روي DataSet رديف متناظر آن روي DataGridView هم انتخاب ميشه
به اين جهت پرسيدم كه مي خوام ركوردي رو كه در DataSet جستجو كردم رو روي گريد ، رديف متناظرش انتخاب بشه.

sina_saravi1
چهارشنبه 27 مهر 1390, 12:00 عصر
اگه شما میخواین با پیمایش رو یکی از اون دو یکی دیگه هم پیموده بشه چرا اطلاعات و ابزارو بایند نمیکنید ؟

FastCode
پنج شنبه 28 مهر 1390, 22:01 عصر
بهترین روش برای نمایش در گرید استفاده از BindingSource ه چون شما ۱۰۰٪ فعلاً نمیتونید با FirstDisplayedScrollingRowIndex کار کنید.