PDA

View Full Version : گرید همراه با جدول Chield



mohammad diba
سه شنبه 13 شهریور 1386, 10:42 صبح
سلام خسته نباشید
من یک سوال دارم
در سی شارپ 2003 اگر Relation ها تنظیم شده باشد اطلاعات در داخل گریدها هریکال (سلسله مراتبی) نمایش داده می شود ولی من نتونستم این کار را در سی شارپ2005 انجام دهم لطفا در صورت امکان کمک کنید.

hdv212
سه شنبه 13 شهریور 1386, 13:27 عصر
با فرض اینکه دوتا دیتاگرید روی فرمت داشته باشی، یکی برای جدول master و یکی هم details، از این کد استفاده کن :

// this sample code create relation between Customers & Orders tables
SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=northwind;User Id=sa;Password=09126511085;");
SqlCommand cmd = new SqlCommand("select * from customers", con);
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();

// fill dataset with master table (customers)
adapter.Fill(ds, "customers");

// fill datast with child table (orders)
cmd.CommandText = "select * from orders";
adapter.Fill(ds, "orders");

// define this 2 DataColumn for join Customers & Orders tables together
DataColumn dcPK = ds.Tables["customers"].Columns["customerID"];
DataColumn dcFK = ds.Tables["orders"].Columns["customerID"];

// create relation between 2 tables with DataRelation object
DataRelation CustomersToOrders = new DataRelation("CustomersToOrders", dcPK, dcFK);
ds.Relations.Add(CustomersToOrders);

// bind dataGridView1.DataSource to master table
this.dataGridView1.DataSource = ds;
this.dataGridView1.DataMember = "Customers";

// bind dataGridView1.DataSource to our DataRelation(it is child of master table(Customers))
this.dataGridView2.DataSource = ds;
this.dataGridView2.DataMember = "Customers.CustomersToOrders";