我很难找到刷新我的datagridview的方法..我试过datagridview.refresh(),datagridview.Update()....but它不工作...
这是我的代码
Imports System.Data
Imports System.Data.OleDb
Imports System.Data.Odbc
Imports System.Data.DataTable
Public Class Form1
Dim provider As String
Dim dataFile As String
Dim connString As String
Dim addstring As String
Dim cnn As OleDbConnection = New OleDbConnection
Dim ds As DataSet = New DataSet
Dim da As OleDbDataAdapter
Dim tables As DataTableCollection = ds.Tables
Dim cmd As New OleDb.OleDbCommand
Dim dr As System.Data.OleDb.OleDbDataReader
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
t_date.Text = Today
provider = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="
dataFile = "C:\Users\hp-2\Documents\Visual Studio 2012\Projects\Delta\Delta.mdb"
connString = provider & dataFile
cnn.ConnectionString = connString
da = New OleDbDataAdapter("Select Customer_Name, Job, Amount from [Transaction] where Trans_date = Date()", cnn)
da.Fill(ds, "Transaction")
Dim view1 As New DataView(tables(0))
Dim source1 As New BindingSource()
source1.DataSource = view1
showdata.DataSource = view1
showdata.Refresh()
cnn.Close()
End Sub我试过这个,但它也不起作用。
Private Sub showdat()
If Not cnn.State = ConnectionState.Open Then
cnn.Open()
End If
showdata.Refresh()
cnn.Close()
End Sub..。
Private Sub btmclose_Click(sender As Object, e As EventArgs) Handles btmclose.Click
Me.Close()
End Sub
Private Sub C_job_SelectedIndexChanged(sender As Object, e As EventArgs) Handles C_job.SelectedIndexChanged
Dim selected As String = C_job.SelectedItem.ToString()
If selected = "Internet" Then
t_amount.Text = "20"
php.Visible = True
ElseIf selected = "Games" Then
t_amount.Text = "10"
php.Visible = True
ElseIf selected = "Print (short)" Then
t_amount.Text = "1"
php.Visible = True
ElseIf selected = "Print (long)" Then
t_amount.Text = "2"
php.Visible = True
ElseIf t_amount.Text = "" Then
php.Visible = False
End If
End Sub这是我的添加按钮..。在我点击it...the之后,数据被成功添加,但是datagridview并没有刷新...
Private Sub btnadd_Click(sender As Object, e As EventArgs) Handles btnadd.Click
provider = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
dataFile = "C:\Users\hp-2\Documents\Visual Studio 2012\Projects\Delta\Delta.mdb"
connString = provider & dataFile
cnn.ConnectionString = connString
cnn.Open()
cmd.Connection = cnn
cmd.CommandText = "insert into [Transaction] (Customer_Name, Job, Trans_date, Amount ) " & _
" values ('" & C_name.Text & "','" & C_job.Text & "','" & t_date.Text & "','" & t_amount.Text & "')"
cmd.ExecuteNonQuery()
showdat()
cnn.Close()
End Sub
End Class发布于 2017-03-28 17:02:23
希望这将有助于创建函数
private sub loaddata()
datagridview.Datasource=nothing
datagridview.refresh
dim str as string = "select * from database"
using cmd As New OleDb.OleDbCommand(str,cnn)
using da As new OleDbDataAdapter(cmd)
using newtable as new datatable
da.fill (newtable)
datagridview.datasource=newtable
end using
end using
end using
end sub发布于 2013-08-13 00:19:22
我认为问题在于您向数据库中添加了一个新条目,而不是数据网格表示的数据结构。您只是在load事件中查询数据库中的数据,所以如果数据库在那之后发生了更改,您将不会知道它。
要解决此问题,您需要在每次插入后重新查询数据库,或者在每次插入后将该项添加到表(0)数据结构中。
发布于 2015-06-01 04:11:05
我发现,如果您尝试使用来自dataset的更新数据刷新绑定的datagridview,则此代码可以正常工作。显然,这是在我将更新发送到数据库之后。
'clear out the datasource for the Grid view
Me.DataGridView1.DataSource = Nothing
'refill the table adapter from the dataset table
Me.viewABCTableAdapter.Fill(Me.yourDataSet.viewABC)
'reset the datasource from the binding source
Me.DataGridView1.DataSource = Me.viewABCBindingSource
'should redraw with the new data
Me.DataGridView1.Refresh()https://stackoverflow.com/questions/18191666
复制相似问题