簡體   English   中英

C#如何訪問DataGridView數據庫記錄中選定的數據字段

[英]c# how to access data fields of the selected in DataGridView database record

我是數據庫編程的新手,所以我可能有一個非常簡單的問題。

在表單上,​​我有一個DataGridView,它顯示來自SQL數據庫和單個表的所有記錄。 當我選擇一行(OnRowEnter事件)時,我想在textBox中顯示相同的數據,這些數據沒有綁定到DataSource,但是我不知道如何訪問所選的記錄及其字段。 我已經看到許多使用SQL語句的示例,但這是唯一的方法嗎? 還是有一個更簡單的方法。 我以為我應該幾乎可以直接訪問當前記錄及其字段? 可能嗎?

我正在使用Visual Studio Community 2013

事先感謝您的幫助。

    private void dataGridView1_RowEnter(object sender, DataGridViewCellEventArgs e)
    {
        string asd = dataGridView1.Rows[e.RowIndex].Cells["NameOfColumn"].Value.ToString();
    }

您可以通過此行訪問任何行的任何列。

編輯:您剛剛告訴我,您想從數據庫中填充2個文本框,然后單擊要保存/覆蓋的按鈕(保存-覆蓋)。 那么為什么不從數據庫中填充它呢?

using (FbConnection con = new FbConnection(connectionString))
{
    con.Open();
    using (FbCommand cmd = new FbCommand("SELECT TEXT1, TEXT2 FROM TABLE WHERE CONDITION", con))
    {
        FbDataReader dr = cmd.ExecuteReader();
        if(dr.Read())
        {
            textBox1.Text = dr[0].ToString();
            textBox2.Text = dr[1].ToString();
        }
    }
    con.close();
}

然后在用戶按保存后,您只需獲取全文並更新數據庫

using (FbConnection con = new FbConnection(connectionString))
{
    con.Open();
    using (FbCommand cmd = new FbCoimmand("UPDATE TABLE SET TEXT1 = @Text1, TEXT2 = @Text2 WHERE CONDITION))
    {
        cmd.Parameters.AddWithValue("@Text1", textBox1.Text);
        cmd.Parameters.AddWithValue("@Text2", textBox2.Text);

        cmd.ExecuteNonQuery();
    }
    con.Close();
}

如果用戶在其他文本框中編寫文本,並且您想將該文本添加到數據庫中的當前文本,那么您只需從數據庫中讀取文本並將其放入字符串中,就可以在該字符串上從用戶中添加字符串並將其保存到數據庫中

暫無
暫無

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

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