我使用Nordwind数据库
这是我的应用的外观:
我想从第一个网格视图中选择一行,并在第二个网格视图中显示那些客户的订单,我也想在第一个网格视图中过滤1个或更多列。
GridView1:
private void Form1_Load(object sender,EventArgs e)
{
SqlConnection conn = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Northwind.mdf;Integrated Security=True");conn.Open();
SqlCommand cmd = new SqlCommand("select * from Customers",conn);
SqlDataReader rdr = cmd.ExecuteReader();
List<Customer> Customers = new List<Customer>();
while (rdr.Read())
{
Customer c = new Customer();
c.CustomerID = (string)rdr["CustomerID"];
c.CompanyName = (string)rdr["CompanyName"];
c.ContactName = (string)rdr["ContactName"];
c.City = (string)rdr["City"];
c.Country = (string)rdr["Country"];
c.Phone = (string)rdr["Phone"];
Customers.Add(c);
}
dataGridView1.DataSource = Customers;
}
GridView2:
private void dataGridView2_CellContentClick(object sender,DataGridViewCellEventArgs e)
{
SqlConnection conn = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Northwind.mdf;Integrated Security=True");
conn.Open();
SqlCommand cmd = new SqlCommand("select * from Orders",conn);
SqlDataReader rdr = cmd.ExecuteReader();
List<Order> Orders = new List<Order>();
while (rdr.Read())
{
Order o = new Order();
o.OrderID = (int)rdr["OrderID"];
o.OrderDate = (DateTime)rdr["OrderDate"];
o.ShipName = (string)rdr["ShipName"];
o.ShipCity = (string)rdr["ShipCity"];
o.ShipCountry = (string)rdr["ShipCountry"];
Orders.Add(o);
}
dataGridView2.DataSource = Orders;
}
选择整行:
{
Customer c = (Customer)dataGridView1.CurrentRow.databoundItem;
}
我认为SqlCommand在GridView2中不好,而且我认为我需要更新表单,但是我不知道该怎么做。
有人可以给我正确的代码,甚至可以解释什么是什么部分?
如果您需要更多信息,请提前感谢。