使用子类型查询SQL数据库,在c#中显示它

时间:2012-12-23 13:48:45

标签: c# mysql

我现在已经为类似POS的系统创建了一个MySQL数据库,我正在使用子类型在我的数据库中放置一些不同的类型。

CREATE TABLE Product(
Prod_id INT PRIMARY KEY AUTO_INCREMENT,
Name VARCHAR(40),
Barcode INT
);

CREATE TABLE Card(
Prod_id INT,
Price DECIMAL(8, 2),
FOREIGN KEY (Prod_id) REFERENCES Product(Prod_id)
);
CREATE TABLE Weapon(
Prod_id INT,
Caliber_id INT,
FOREIGN KEY (Prod_id) REFERENCES Product(Prod_id)
);

当我扫描条形码时,我想查询数据库。找到产品后,我想在屏幕上显示有关它的所有信息。我在C#中使用DataTable,并且在每个结果中,我都将DataRow添加到DataTable。

所以我有两个问题: 我怎么能整齐地查询数据库,返回关于条形码的所有信息? 如何在屏幕上以有效的方式显示此信息?

1 个答案:

答案 0 :(得分:2)

我假设你只使用提到的表

请找到下面的sql语句,它将根据需要返回所有信息

Select p.Prod_id,p.Name,p.Barcode,c.Price, w.Caliber_id 
from Product p
inner join Card c
on 
(
p.Prod_id  = c.Prod_id 
)
inner join Weapon w
on 
(
p.Prod_id  = w.Prod_id 
) 
where p.Barcode = 'Barcode'

如果您有一些不在卡片或武器中的产品,您可以使用左外连接

希望这会对你有所帮助。