Get an id from a dataGridView

本文关键字:dataGridView from id an Get | 更新日期: 2023-09-27 17:57:35

有人能帮我吗。我有一个表,当我单击其中的一个单元格以获取行id(这将是第一列)时,我希望它。事实上,这是我试图做的一个项目的一部分,在这个项目中,我需要显示父母的所有孩子。所以我想从父级获得这个id,然后遍历所有子级,验证哪些id与外键相同,然后显示它们。请帮我提一些想法。如果你不能理解我的问题,我可以提供代码

public AirlineReservation()
        {
            InitializeComponent();      
        }
        private void getData()
        {
            SqlDataAdapter parentDataAdapter = new SqlDataAdapter("select * from Airline", connection);
            parentDataAdapter.Fill(ds, "Airline");
            SqlDataAdapter childDataAdapter = new SqlDataAdapter("select * from Plane", connection);
            childDataAdapter.Fill(ds, "Plane");
            DataColumn parentColumn = ds.Tables["Airline"].Columns["airline_id"];
            DataColumn childColumn = ds.Tables["Plane"].Columns["airline_id"];
            rel = new DataRelation("PlaneAirline", parentColumn, childColumn);
            ds.Relations.Add(rel);
            parentBindingSource.DataSource = ds;
            parentBindingSource.DataMember = "Airline";
            childBindingSource.DataSource = parentBindingSource;
            childBindingSource.DataMember = "PlaneAirline";   
        }
        private void AirlineReservation_Load(object sender, EventArgs e)
        {
            parentDataGridView.DataSource = parentBindingSource;
            childDataGridView.DataSource = childBindingSource;
            getData();  
        }
        private void dg_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            DataTable airlines = ds.Tables["Airline"];
            foreach (DataRow airline in airlines.Rows) {
                Console.WriteLine("AirlineID = " + airline["airline_id"]);
                Console.WriteLine("AirlineName = " + airline["name"]);
                DataRow[] planes = airline.GetChildRows("PlaneAirline");
                Console.WriteLine("This airline has following planes:");
                foreach (DataRow plane in planes)
                {
                    Console.WriteLine("  PlaneID = " + plane["plane_id"]);
                }
            }           
        }

我已经建立了这两个表之间的关系,到目前为止,当我点击一个单元格时,它会显示所有的孩子和他们的父母。但我只想显示所选单元格的子项。

Get an id from a dataGridView

DataGridViewCellEventArgs包含用于获取单击的行和列索引的成员。通过该操作,您可以确定单击的单元格并获取其数据。这样你就可以得到相应的平面。

private void dg_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
    Console.WriteLine("Clicked row: " + e.RowIndex);
    Console.WriteLine("Clicked column: " + e.ColumnIndex);
    Console.WriteLine("Cell value: " + dg.Rows[e.RowIndex].Cells[e.ColumnIndex].Value);
}