2017-05-03 54 views
0

我是新来的数据库编程,所以我可能有一个非常简单的问题。c#如何访问在DataGridView数据库记录中选择的数据字段

在窗体上,我有一个DataGridView,它显示来自单个表的SQL数据库中的所有记录。当我选择一行(OnRowEnter事件)时,我想在文本框中显示相同的数据,这些数据不绑定到数据源,但我不知道如何访问选定的记录及其字段。 我见过很多使用SQL语句的例子,但它是唯一的方法吗?或者有一个更简单的方法。我认为我应该能够几乎直接访问当前的记录及其字段?可能吗?

我正在使用Visual Studio Community 2013

Thx提前寻求帮助。

回答

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

如果用户正在写一些其他文本框的文本和要将该文本添加到数据库中的当前文本,以便您从数据库中读取文本并将其放入字符串中,在该字符串上添加来自用户的字符串并将其另存为数据库

+0

是的,我知道这一点,但我想访问通过数据库,最后我可能需要替换当前r的数据与新数据一致。 – LUK

+0

你说它需要显示未绑定到数据源的文本框中的数据。你在谈论什么编辑以及它将如何完成? –

+0

我在数据库表中有两个文本字段,我想在文本框中显示这两个字段。然后用户可以编辑它并保存为新记录或覆盖现有记录。我不希望用户使用DataGrid进行编辑。 – LUK

相关问题