Timer里的又一个函数处理问题

qjgdftxmu qjgdftxmu 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我自己设想的一个两程序通信,因为我不会动态内存分配,于是就设想利用ACCESS作为中介,程序一在ACCESS表里插入数据,而程序二一直扫描表中的数据并显示出来。
可是我的TIMER的INTERVAL设定为100,可是显示的速度确远远没大于100MS,有将近2到3S啊。

这是接近端程序:
Imports System.Data
Imports System.Data.OleDb

Public Class Form1
Dim textWord As String = "text.mdb"
Dim UseWord As String = "C:\test.mdb"
Dim objconnection As OleDbConnection

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
objconnection = New OleDbConnection("Provider = Microsoft.JET.OLEDB.4.0;" & "Data source = " & UseWord & ";")
objconnection.Open()
Timer1.Enabled = True
Timer1.Interval = 100
Try
SheetDisplay(grdResults, objconnection)
Catch ex As Exception
MessageBox.Show(ex.ToString)
End Try
txtRecive.Text = grdResults.SelectedCells.Item(1).Value
End Sub

Public Sub SheetDisplay(ByVal grdResults As DataGridView, ByVal objconnection As OleDbConnection)

Dim binding As New BindingSource

Dim SQLString As String = "SELECT * FROM Buffer"

Dim objCommand As New OleDbCommand(SQLString, objconnection)

objCommand.CommandType = CommandType.Text


Dim objDataAdapter As New OleDbDataAdapter

Dim objDataTable As New DataTable

objDataAdapter.SelectCommand = objCommand

objDataAdapter.Fill(objDataTable)

binding.DataSource = objDataTable

grdResults.DataSource = binding

grdResults.MultiSelect = False

grdResults.EditMode = DataGridViewEditMode.EditProgrammatically

grdResults.SelectionMode = DataGridViewSelectionMode.FullRowSelect

binding.MoveLast()
End Sub

Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Try
SheetDisplay(grdResults, objconnection)
Catch ex As Exception
MessageBox.Show(ex.ToString)
End Try
txtRecive.Text = grdResults.SelectedCells.Item(1).Value
End Sub
End Class

这是发送端程序:
Imports System.Data
Imports System.Data.OleDb

Public Class Form1
Dim textWord As String = "Test.mdb"
Dim UseWord As String = "C:\Test.mdb"
Dim objconnection As OleDbConnection
Dim SQLString As String
Dim R_ID As String = "ABB"

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
objconnection = New OleDbConnection("Provider = Microsoft.JET.OLEDB.4.0;" & "Data source = " & UseWord & ";")

Try
objconnection.Open()

Catch oledbexceptionErr As OleDbException
MessageBox.Show(oledbexceptionErr.Message, "Access SQL")
Catch InvalidoperationExceptionErr As InvalidOperationException
MessageBox.Show(InvalidoperationExceptionErr.Message, "Access SQL")
End Try
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
SQLString = "INSERT INTO Buffer (R_ID) values('" & TextBox1.Text & "')"
Dim objcommand As OleDbCommand = New OleDbCommand(SQLString, objconnection)
Dim count As Integer = 0
Try
count = objcommand.ExecuteNonQuery()
Catch ex As Exception
MessageBox.Show(ex.ToString())
End Try
End Sub
End Class
...全文
评论 11
收藏 已收藏
分享
返回顶部
qjgdftxmu
VB 16,718 成员 110,520 内容