一个DataGrid如何实现这样的两张表的数据绑定?
有一个商品表和一个每日价格表:
product(productCode, productName)
Price(productCode, Date, Price)
如
Product:
0001 Car1
0002 Car2
Price
0001 2007-8-5 $1000
0001 2007-8-5 $1200
0002 2007-8-6 $1300
现在我想在一个DataGrid中实现这样的效果,显示每种商品2007-8-9日的价格,如果没有,则价格一项列为空:
如:
ProductName Price
car1 (如果有数据则显示,无数据,则空白)
car2
string CnnString= "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= "+Server.MapPath( "Product.MDB ");
OleDbConnection cnn = new OleDbConnection(CnnString);
StringBuilder Sb=new StringBuilder( "Select * from Product Left Outer Join Price on Product.ProductCode=Price.ProductCode ");
Sb.Append( " Where Price.Date= ");
Sb.Append(txtDate.Text);
OleDbDataAdapter Da=new OleDbDataAdapter(Sb.ToString(),cnn);
DataSet Ds=new DataSet();
cnn.Open();
Da.Fill(Ds, "ResTable ");
DBGrid.DataSource=Ds.Tables[ "ResTable "].DefaultView;
DBGrid.DataBind();
cnn.Close();
这个左联接查询不加Where 条件时还可以实现如果价格为空则显示空白,但加入了Where 条件后,如果当日价格为空则一行数据也不显示了?
请高手们指点,如何能实现我想要的效果?
[解决办法]
select * from Product left join (select productCode,Price from Price where Date= '2007-8-9 ') on Product.productCode=Price.productCode
[解决办法]
我说的是这样,你试下看