繁体   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