在数据库C#中更新后,所选值在Datagridview中保持选中状态?

ViFer

我有一个dataGridView及其从数据库中获取所有数据。我要做的是创建一个显示所有数据的方法,但是事情是,调用该方法后,滚动返回到我不想发生的顶部。我创建此方法的目的是显示新添加的数据并更新颜色。

    private void showAllData()
    {
        try
        {
            using (OleDbConnection conn = new OleDbConnection(GlobalVar.connectionString))
            using (OleDbDataAdapter sda = new OleDbDataAdapter("SELECT * FROM tblTest", conn))
            {
                DataTable dt = new DataTable();
                sda.Fill(dt);

                dataGridView1.DataSource = dt;

                for (int x = 0; x < dataGridView1.RowCount; x++)
                {
                    if (dataGridView1.Rows[x].Cells["Color"].Value == "Green")
                        dataGridView1.Rows[x].DefaultCellStyle.BackColor = Color.Green;
                    else
                        dataGridView1.Rows[x].DefaultCellStyle.BackColor = Color.Red;
                }
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
    }

    private void btnAdd_Click(object sender, EventArgs e)
    {
        try
        {
            using (OleDbConnection conn = new OleDbConnection(GlobalVar.connectionString))
            using (OleDbCommand cmd = new OleDbCommand("INSERT INTO tblTest (Color) VALUES ('Red')", conn))
            {
                conn.Open();
                cmd.ExecuteNonQuery();
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }

        //Update dataGridView1 BackColor
        showAllData();
    }

    private void btnUpdate_Click(object sender, EventArgs e)
    {
        try
        {
            using (OleDbConnection conn = new OleDbConnection(GlobalVar.connectionString))
            using (OleDbCommand cmd = new OleDbCommand("UPDATE tblTest SET Color = 'Green' WHERE id = " + dataGridView1.SelectedRows[0].Cells[0].Value, conn))
            {
                conn.Open();
                cmd.ExecuteNonQuery();
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }

        //Update dataGridView1 BackColor
        showAllData();
    }
朱尼思

使用该DataGridView.FirstDisplayedScrollingRowIndex属性。它设置该行的索引,该行是DataGridView上显示的第一行。

在您的情况下,由于您正在更改DataSource,可能已添加了新行。您不能使用已选择的行索引。您必须标识先前选择的行(使用任何唯一标识符)并获取其索引,并将上述属性设置为此索引号。

除了重置DataSource,还可以使用合并查询的表与现有表DataTable.Merge,并使用刷新网格DataGridView.Refresh

或者,您可以再次填充原始数据表。

DataTable origTable = dataGridView1.DataSource as DataTable;
sda.Fill(origtable);
dataGridView1.Refresh();

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在C#中从DataGridView更新数据库表

来自分类Dev

在Laravel中在数据库中设置值时如何显示复选框为选中状态

来自分类Dev

使用C#编辑DataGridview并将其保存在数据库表中

来自分类Dev

C#中的参数化更新语句-在数据库中存储RTF

来自分类Dev

每个DataGridView行的C#更新数据库

来自分类Dev

使用Datagridview C#更新MySql数据库

来自分类Dev

c#在datagridview中显示数据库中的数据

来自分类Dev

尝试使用 C# 在数据库中保存数据数组

来自分类Dev

在数据库中保留php文件的更新列表

来自分类Dev

DropdownList所选值未保存在数据库中

来自分类Dev

将计时器值存储在数据库中?C#

来自分类Dev

C#使用主键将值保存在数据库中

来自分类Dev

如何在数据库中保留范围值

来自分类Dev

使用循环在数据库中保存动态值

来自分类Dev

日期未在数据库中保存正确的值

来自分类Dev

如何在数据库中的数据插入的同时更新datagridview

来自分类Dev

C# 无法从 DateTimePicker 在数据库中保存 Null

来自分类Dev

如何在数据库c#中保存标签

来自分类Dev

在数据库中保存实际值的同时防止Java Web App中的XSS攻击

来自分类Dev

在 C# 中从 mysql 数据库填充 datagridview

来自分类Dev

如何在jsp中以选中状态从数据库中检索单选按钮值

来自分类Dev

在数据库中保存内存中的图形表示

来自分类Dev

SQLite 数据库在更新后被 C# 锁定?

来自分类Dev

如何在数据库中插入绑定列和取消绑定列datagridview值

来自分类Dev

在数据库中插入值

来自分类Dev

在每个 . 在数据库中的值

来自分类Dev

orphanRemoval在休眠模式下无法正常工作:从列表中插入和删除的元素在数据库中保持不变

来自分类Dev

单击按钮后如何在数据库中保存下拉菜单项模板的选定值?

来自分类Dev

使用C#,WPF,实体框架和Visual Studio 2012不会在数据库中更新数据

Related 相关文章

  1. 1

    在C#中从DataGridView更新数据库表

  2. 2

    在Laravel中在数据库中设置值时如何显示复选框为选中状态

  3. 3

    使用C#编辑DataGridview并将其保存在数据库表中

  4. 4

    C#中的参数化更新语句-在数据库中存储RTF

  5. 5

    每个DataGridView行的C#更新数据库

  6. 6

    使用Datagridview C#更新MySql数据库

  7. 7

    c#在datagridview中显示数据库中的数据

  8. 8

    尝试使用 C# 在数据库中保存数据数组

  9. 9

    在数据库中保留php文件的更新列表

  10. 10

    DropdownList所选值未保存在数据库中

  11. 11

    将计时器值存储在数据库中?C#

  12. 12

    C#使用主键将值保存在数据库中

  13. 13

    如何在数据库中保留范围值

  14. 14

    使用循环在数据库中保存动态值

  15. 15

    日期未在数据库中保存正确的值

  16. 16

    如何在数据库中的数据插入的同时更新datagridview

  17. 17

    C# 无法从 DateTimePicker 在数据库中保存 Null

  18. 18

    如何在数据库c#中保存标签

  19. 19

    在数据库中保存实际值的同时防止Java Web App中的XSS攻击

  20. 20

    在 C# 中从 mysql 数据库填充 datagridview

  21. 21

    如何在jsp中以选中状态从数据库中检索单选按钮值

  22. 22

    在数据库中保存内存中的图形表示

  23. 23

    SQLite 数据库在更新后被 C# 锁定?

  24. 24

    如何在数据库中插入绑定列和取消绑定列datagridview值

  25. 25

    在数据库中插入值

  26. 26

    在每个 . 在数据库中的值

  27. 27

    orphanRemoval在休眠模式下无法正常工作:从列表中插入和删除的元素在数据库中保持不变

  28. 28

    单击按钮后如何在数据库中保存下拉菜单项模板的选定值?

  29. 29

    使用C#,WPF,实体框架和Visual Studio 2012不会在数据库中更新数据

热门标签

归档