簡體   English   中英

從dataGridView獲取ID

[英]Get an id from a dataGridView

誰能幫我這個。 我有一個表格,當我單擊表格中的一個單元格以獲得行ID(這將是第一列)時,我想要它。 實際上,這是我正在嘗試做的項目的一部分,在該項目中,我需要顯示父母的所有孩子。 所以我在想從父級那里獲得這個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"]);
                }
            }           
        }

我已經建立了兩個表之間的關系,到目前為止,當我單擊一個單元格時,它會向我顯示所有孩子及其父母。 但我只想顯示所選單元格的子級。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM