选择新数据后如何在 VB.Net 中刷新 Datagridview

     2023-03-23     277

关键词:

【中文标题】选择新数据后如何在 VB.Net 中刷新 Datagridview【英文标题】:How refresh Datagridview in VB.Net after seletc a new data 【发布时间】:2021-06-17 19:56:08 【问题描述】:

我有一个问题,因为,当我想在 datagridview 中加载一个新的注册时,会显示上一条记录的相同列以及选择的其他列。

这是选择的数据

这是以前记录的新数据

我尝试了一切,但没有任何效果

        Pinicio.DataGridView1.Parent.Refresh()
        Pinicio.DataGridView1.EndEdit()
        Pinicio.DataGridView1.Refresh()
        Pinicio.DataGridView1.Parent.Refresh()

我会更好地解释它,当我第一次查询产品时,应用程序工作正常,但是当我尝试找到另一个产品时,它会添加上一篇文章的列以及新选择的产品的列。

添加新产品的代码

Consulta= "SELECT * FROM ARTICULOS AR INNER JOIN ARTICULOSLIN ARL ON AR.CODARTICULO = ARL.CODARTICULO WHERE AR.REFPROVEEDOR = '" + code.ToString + "' AND ARL.TALLA = 'S'"
ConsultaSqlDataAdapter1 = New SqlDataAdapter(Consulta, Login.conexion)
                i1 = 0
                rs1.Clear()
                ConsultaSqlDataAdapter1.Fill(rs1, "TablaTallas")
                Pinicio.DataGridView1.DataSource = rs1.Tables(0)
            Pinicio.TabPage.TabPages.Add(Pinicio.TabPage2)
            Pinicio.TabPage.SelectedTab = Pinicio.TabPage2
            Frm_Buscar_Articulos.Close()

【问题讨论】:

您如何选择新数据?您是否创建新查询?生成一个新的DataTable/DataSet/Model?您是否将数据加载到同一个容器而不清除它?你为什么不显示那个代码?顺便说一句,Refresh() 与 UI 元素(它的图形渲染)相关,而不是数据,所以这里无关紧要。 我会更好地解释它,当我第一次查询产品时,应用程序工作正常,但是当我尝试找到另一个产品时,它添加了上一篇文章的列以及新选择的产品,问题中有代码 【参考方案1】:

您的投诉是 仍然存在

是的,恐怕就是这样。填充表的 DataAdapter 将根据需要创建新列。如果您随后将相同的数据表重新用于不同的查询,则旧列将保留(并且为空)

Clear() 删除,而不是

我建议你做一个新表:这是最简单的方法:

            Consulta= "SELECT * FROM ARTICULOS AR INNER JOIN ARTICULOSLIN ARL ON AR.CODARTICULO = ARL.CODARTICULO WHERE AR.REFPROVEEDOR = @c AND ARL.TALLA = 'S'"
            ConsultaSqlDataAdapter1 = New SqlDataAdapter(Consulta, Login.conexion)
            ConsultaSqlDataAdapter1.Parameters.Add("@c", SqlDbType.VarChar, 50).Value =  code.ToString() ' change 50 to the width of your column
            i1 = 0
            Dim dt as New DataTable 
            ConsultaSqlDataAdapter1.Fill(dt)
            Pinicio.DataGridView1.DataSource = dt

请注意我已经修复了你的 sql injection hacking 易受攻击的 sql。永远不要再编写一个将值串连到其中的 SQL。始终使用参数。见http://Bobby-tables.com

在VB中使用&连接字符串,而不是+

【讨论】:

感谢您的帮助,不胜感激,我将审查sql注入。 非常欢迎!也许看看 Dapper 或强类型数据集,它们可以省去很多这种乏味的低级代码【参考方案2】:

无需触摸网格。它只会显示其数据源中的任何内容。您应该填充DataTable 并通过BindingSource 将其绑定到网格。要“刷新”数据,只需重新填充相同的DataTable。其他一切都会自行解决。如果您打算在重新填充之前清除DataTable,则可能需要在开始和结束时在BindingSource 上调用SuspendBindingResumeBinding

【讨论】:

【参考方案3】:

你应该先清除datagridview

Pinicio.dataGridView1.Rows.Clear();
Pinicio.dataGridView1.Refresh();

仅当您不添加新行时才需要刷新

【讨论】:

在 vb.net 中更新后刷新数据网格视图

】在vb.net中更新后刷新数据网格视图【英文标题】:refreshdatagridviewafterupdatinginvb.net【发布时间】:2013-03-0518:10:13【问题描述】:我有一个特定表的数据网格视图和详细信息。我更新了详细信息,但它没有在数据网格视图中更新... 查看详情

关于vb.net中datagridview刷新问题

我用datagridview显示了我所建的Access数据表中的一个视图,然后我在datagridview的旁边建了个录入程序,没有用dataset录入数据库,而是用sql语言将数据录入数据库,现在我应该怎么办,让我录入数据以后,datagridview能直接显示出录入的数据!?... 查看详情

数据集更新vb.net后DataGridView不刷新

】数据集更新vb.net后DataGridView不刷新【英文标题】:DataGridViewdoesnotrefreshafterdatasetupdatevb.net【发布时间】:2012-04-2509:52:12【问题描述】:我有一个带有dataGridView的vb.net表单dataGridView数据源是带有这条sql语句的dgvTableAdapterSELECTmembres... 查看详情

【vb.net】datagridview绑定数据后数据变化触发事件

datagridview绑定了数据,每隔两分钟刷新一次,如果表格中的数据发生了变化,会触发什么事件呢?似乎会触发cellvaluechanged事件,但是加载数据时不想触发,应该怎么控制呢建议在编辑datagridview的时候先暂停刷新,可以使用checkbox... 查看详情

请求Ajax成功后刷新表

...-2216:02:00【问题描述】:我是Ajax的初学者。当用户在表单选择过滤器中选择一个选项时,我尝试刷新表格。我使用Symfony和Twig。当我选择一个新过滤器时,我在控制台中获得了Json格式的新数据,但表格没有显示新数据。当我的请... 查看详情

关于vb.net中datagridview刷新问题

参考技术A把连接数据库和显示数据的过程写成在一个方法里(如showdata),在点击录入按钮时,先写你的录入代码,写完后在调用一下showdata() 查看详情

如何在 VB.NET 中存储/查询数据?

...】:目前我正在使用Access和OleDb连接来存储数据。我最初选择这条路线是因为我认为这是我分发给客户的应用程序的最佳方式。我更喜欢使用SQLServer之类的东西,但这对于我正在分发的软件来说是个好主意吗?一般Joe的PC是否预... 查看详情

使用重新加载数据选择子项后,Tableview 刷新到父视图

】使用重新加载数据选择子项后,Tableview刷新到父视图【英文标题】:Tableviewrefreshingtoparentviewafterselectingchildusingreloaddata【发布时间】:2010-10-1517:18:06【问题描述】:我有一个UITableView,它使用JSON从AppDelegate获取新数据。它保存... 查看详情

在 vb.net 中使用 tableadapter 更新旧数据并添加新数据

】在vb.net中使用tableadapter更新旧数据并添加新数据【英文标题】:Updateolddataandaddnewdatausingtableadapterinvb.net【发布时间】:2013-02-0223:16:44【问题描述】:我的代码应该更新旧记录,同时如果找到新记录,它应该同样将其插入数据库... 查看详情

如何在 VB.net 中编写这个 lambda 选择方法?

】如何在VB.net中编写这个lambda选择方法?【英文标题】:HowdoIwritethislambdaselectmethodinVB.net?【发布时间】:2012-05-2907:20:14【问题描述】:因为我已经尝试过了:DimexampleItemsAsDictionary(OfString,String)=NewDictionary(OfString,String)Dimblah=exampleIte... 查看详情

选择列表框选项时将行添加到 Data GridView VB.net

】选择列表框选项时将行添加到DataGridViewVB.net【英文标题】:AddrowstoaDataGridViewwhenListboxoptionisselectedVB.net【发布时间】:2015-04-0912:03:23【问题描述】:我希望为我正在开发的网站创建一个选项管理页面。我需要根据在ListBox中选择... 查看详情

vb.net 重新绑定数据网格以显示 vb.net 中的更改

】vb.net重新绑定数据网格以显示vb.net中的更改【英文标题】:vb.netrebinddatagridtodisplaychangesinvb.net【发布时间】:2012-02-1319:08:30【问题描述】:我有以下代码在对数据库进行更新后刷新表单中的数据网格。我的问题是为什么我必须... 查看详情

vb.net怎么安装

...建部署项目1.在“文件”菜单上指向“添加项目”,然后选择“新建项目”。2.在“添加新项目”对话框中,选择“项目类型”窗格中的“安装和部署项目”,然后选择“模板”窗格中的“安装项目”。在“名称”框中键入setup1... 查看详情

如何在flutter中调用函数后刷新页面?

...用以下函数在按下按钮时调用,它会更新后端服务器中的数据。如果该功能成功,我希望页面重新加载并在页面上更新新数据。我应该如何在Flutter中做到这一点?approvalbutton()asyncv 查看详情

Vb.net 如何以编程方式选择选项卡控件中的最后一个选项卡

】Vb.net如何以编程方式选择选项卡控件中的最后一个选项卡【英文标题】:Vb.netHowtoprogramicallyselectthelasttabinatabcontrol【发布时间】:2014-11-3011:16:09【问题描述】:我正在制作一个带有TabControl的Web浏览器,我可以一切正常工作,但... 查看详情

如何确定 vb.net 中数据的 id?

】如何确定vb.net中数据的id?【英文标题】:Howtodeterminetheidofadatainvb.net?【发布时间】:2009-12-2405:26:28【问题描述】:我目前正在vb.net中开发一个ms访问数据库。我需要一个可以确定我在数据库中更新哪些数据的代码。因为当我尝... 查看详情

关于vb.net2005中datagridview的问题

在dataGridView中双击某一行数据弹出另一个页面对这条数据进行修改,修改完毕后点保存返回原来的页面并对原来的页面进行刷新,我的问题就是,如何将修改后的数据设为选中行,并将其显示在dataGridView的第一行。那位高手会的... 查看详情

添加数据后如何刷新片段中的列表视图?

】添加数据后如何刷新片段中的列表视图?【英文标题】:HowtorefreshaListviewinaFragmentafterdatahasbeenadded?【发布时间】:2018-04-2409:30:45【问题描述】:我正在将数据从选项卡片段插入到sqlite数据库中。我的问题是一旦从列表中插入或... 查看详情