我创建了一个表
create table suppliers1(
sup_id NUMBER(20) PRIMARY KEY,
sup_name VARCHAR2(40),
sup_address varchar2(50),
sup_phone NUMBER(15));
在表格中插入数据
INSERT INTO suppliers1 (SUP_ID,SUP_NAME,SUP_ADDRESS,SUP_PHONE) VALUES (100,'PPS','Bds',99545414); INSERT INTO suppliers1 (SUP_ID,SUP_NAME,SUP_ADDRESS,SUP_PHONE) VALUES (200,'Abcd','Dhaka',0295469); INSERT INTO suppliers1 (SUP_ID,SUP_NAME,SUP_ADDRESS,SUP_PHONE) VALUES (300,'Xyz','Ctg',0896547556);
和另一张表是 `
CREATE TABLE Product ( item_id NUMBER(20) PRIMARY KEY, item_name VARCHAR2(50) not null, sup_id NUMBER(20), unit_id NUMBER(10) , CONSTRAINT fk_id FOREIGN KEY (sup_id) REFERENCES suppliers1(sup_id) );
并插入数据产品表
INSERT INTO Product(item_id,item_name,sup_id) values(03,'Product1',100); INSERT INTO Product(item_id,item_name,sup_id) values(02,'Product2',200); INSERT INTO Product(item_id,item_name,sup_id) values(01,'Product3',100);
最后我使用命令
在datagrid中加载产品表OleDbDataAdapter adp = new OleDbDataAdapter("SELECT * FROM product", con); DataTable dt = new DataTable(); dataGridView1.DataSource = dt;
并在GridView中显示数据
ITEM_ID ITEM_NAME SUP_ID 1 Product1 100 2 Product2 200 3 Product3 100
它运作良好,但我需要显示SUP_NAME而不是SUP_ID 比如
> ITEM_ID ITEM_NAME SUP_NAME
> 1 Product1 PPS
> 2 Product2 Abcd
> 3 Product3 PPS
答案 0 :(得分:0)
Sup_ID在您的产品表中,Sup_Name在您的supplier1表中。
但是在您的代码中,您只能从产品表中进行选择。 因此,您需要在代码中的sql中的两个表之间进行连接。
dataGridView1.AutoGenerateColumns = true;
SQLiteConnection dbConnection = new SQLiteConnection("Data Source=C:\\Data\\SODB.db;Version=3;");
dbConnection.Open();
dataGridView1.DataSource = null;
dataGridView1.Columns.Clear();
dataGridView1.Rows.Clear();
SQLiteDataAdapter adp = new SQLiteDataAdapter("SELECT item_id, item_name, sup_name FROM product, suppliers1 where product.sup_id = suppliers1.sup_id", dbConnection);
DataTable dt = new DataTable();
adp.Fill(dt);
dataGridView1.DataSource = dt;
dbConnection.Close();
这将产生一个看起来像这样的结果;