如何在datagridview中获取Name而不是ID

时间:2017-08-09 07:55:37

标签: c# sql datagridview oracle11g

我创建了一个表

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

please see the pic here

1 个答案:

答案 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();

这将产生一个看起来像这样的结果;

Form Picture