【问题标题】:How to get Name instead of ID in datagridview如何在datagridview中获取名称而不是ID
【发布时间】:2018-01-16 23:51:09
【问题描述】:

我已经创建了一个表

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);

最后我使用命令在数据网格中加载产品表

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

【问题讨论】:

    标签: c# sql datagridview oracle11g


    【解决方案1】:

    Sup_ID 在您的产品表中,Sup_Name 在您的供应商1 表中。

    但在您的代码中,您只能从产品表中进行选择。 因此,您需要在代码中的 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();
    

    这将生成如下所示的结果;

    【讨论】:

    • 这不是您在问题中提出的问题。请澄清问题并准确告诉我们您想要什么。并展示您今天如何以编程方式生成此代码
    • 谢谢,我已经使用 c# 使用一些文本字段将数据插入到产品表中,并且需要在数据网格上显示数据 SUP_NAME 而不是 SUP_ID,
    • sup_name 不存在于产品表产品表中包含 sup_id
    • 是的,这就是为什么您要加入到确实存在的供应商1。你试过了吗?
    • 我已经编辑了帖子和附加的屏幕标题,现在我想我已经澄清了你
    猜你喜欢
    • 2021-12-20
    • 2020-11-12
    • 1970-01-01
    • 1970-01-01
    • 2021-09-10
    • 2021-08-29
    • 2012-03-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多