这是我的代码:
cn.Open()
cmd.CommandText = "insert into Student values('" ......
cmd.ExecuteNonQuery()
cn.Close()
关闭连接后,我希望我的 DataGridView 也刷新它的数据。
我是 VB.NETdatagridview.refresh()
的新手,我试过了,但它不起作用,因为我认为这就像重绘而不是更新它的数据。
谢谢。
这是我的代码:
cn.Open()
cmd.CommandText = "insert into Student values('" ......
cmd.ExecuteNonQuery()
cn.Close()
关闭连接后,我希望我的 DataGridView 也刷新它的数据。
我是 VB.NETdatagridview.refresh()
的新手,我试过了,但它不起作用,因为我认为这就像重绘而不是更新它的数据。
谢谢。
如果您更新底层业务对象,UI 应该会自动更新。我猜你忘了做数据绑定,例如DataGridView.DataSource = yourDataTable
。
编辑:你现在最简单的方法可能是替换它:
cmd.ExecuteNonQuery()
有了这个:
Dim dt As New DataTable
dt.Load(cmd.ExecuteReader())
接着:
DataGridView.DataSource = dt
如果您需要数据库更新,您可能需要使用DataAdapter及其Update方法。我链接的重载专门用于 DataTable,即您不需要 DataSet,除非您已经拥有它。
正如@Neolisk 所说,您必须进行数据绑定.. 例如
Dim ds as DataSet
Dim sSql As New OleDb.OleDbCommand
sSql = cnEZApp.CreateCommand()
cmd = New Data.OleDb.OleDbDataAdapter("SELECT * FROM student ORDER by kode", conn)
cmd.Fill(ds, "student")
dgvGuru.DataSource = ds.Tables("student")
因此,要将表更新为数据源,您必须这样做
sSql.CommandText = "insert into Student(...) values(...)"
cmd.UpdateCommand = sSql
cmd.UpdateCommand.ExecuteNonQuery()
cmd.ExecuteNonQuery()