这是我的函数,用于显示从sql server到Datagridview的数据
Private Function getpdfinfo1() As DataTable
DataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect
Dim dtpi As New DataTable
Dim connString As String = ConfigurationManager.ConnectionStrings("pdflib.My.MySettings.hazimdbConnectionString").ConnectionString
Using conn As New SqlConnection(connString)
Using cmd As New SqlCommand("select idpdf as ID,pdfname as Title, categories as Categories , extension as Extension from pdfinfo where ( username='" & Label10.Text & "' ) ", conn)
conn.Open()
Dim reader As SqlDataReader = cmd.ExecuteReader()
dtpi.Load(reader)
conn.Close()
End Using
End Using
Return dtpi
End Function
在Main Form Load中,即使我调用函数getpdfinfo1()
,如下所示
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
DataGridView1.DataSource = getpdfinfo1()
End Sub
我从另一个表单保存数据。用于保存数据的按钮单击事件如下所示
cmd = New SqlCommand("Insert into pdfinfo (pdfname,pdfdata,categories,username,iduser,extension) values (@pdfname,@pdfdata,@categories,@username,@iduser,@extension) ", connection)
connection.Open()
cmd.Parameters.Add(New SqlParameter("@pdfname", SqlDbType.NVarChar, 100)).Value = TextBox2.Text
cmd.Parameters.Add(New SqlParameter("@categories", SqlDbType.NVarChar, 100)).Value = ComboBox1.Text
cmd.Parameters.Add(New SqlParameter("@username", SqlDbType.NVarChar, 100)).Value = TextBox4.Text
cmd.Parameters.Add(New SqlParameter("@iduser", SqlDbType.Int)).Value = Label6.Text
cmd.Parameters.Add(New SqlParameter("@extension", SqlDbType.NChar, 10)).Value = Path.GetExtension(ofd.FileName)
Dim fs As New FileStream(ofd.FileName, FileMode.Open, FileAccess.Read)
Dim br As New BinaryReader(fs)
Dim file() As Byte = br.ReadBytes(br.BaseStream.Length)
cmd.Parameters.Add(New SqlParameter("@pdfdata", SqlDbType.VarBinary)).Value = file
cmd.ExecuteNonQuery()
Label8.Text = "Upload Completed"
所以我想点击保存按钮(保存数据表格),然后主表格(表格2)中的数据网格视图**将自动更新。
或者,如何在Sql数据更改时创建函数更新Datagridview。
getpdfinfo1函数是私有的,使其成为公共函数并在保存按钮单击事件中调用此函数。要从其他表单调用函数,您只需在表单name.function前加上前缀即可。