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

qjgdftxmu 2008-08-27 01:27:56
我自己设想的一个两程序通信,因为我不会动态内存分配,于是就设想利用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
...全文
146 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
ZengHD 2008-09-19
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 mokton 的回复:]
哈哈,可以使用DDE。哦,对了VB.Net貌似已经不再支持DDE了。还是用共享内存吧。
[/Quote]
DDE啊??很老很老的技术了
mokton 2008-09-19
  • 打赏
  • 举报
回复
哈哈,可以使用DDE。哦,对了VB.Net貌似已经不再支持DDE了。还是用共享内存吧。
astromercy 2008-09-19
  • 打赏
  • 举报
回复
加个线程试试,可以提高响应速度
qjgdftxmu 2008-09-15
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 lincyang 的回复:]
引用 4 楼 qjgdftxmu 的回复:
这个我理解,但是超级过那么多我实在有些难以理解。
毕竟用CLICK点的时候没有那么慢啊 



有什么难以理解的,操作大数据库时等10s 20s都是常事!
[/Quote]
可是这个数据库的大小几乎为0啊。
ZengHD 2008-09-15
  • 打赏
  • 举报
回复
还没结帖啊
全速前行 2008-08-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 qjgdftxmu 的回复:]
这个我理解,但是超级过那么多我实在有些难以理解。
毕竟用CLICK点的时候没有那么慢啊 
[/Quote]


有什么难以理解的,操作大数据库时等10s 20s都是常事!
qjgdftxmu 2008-08-27
  • 打赏
  • 举报
回复
不过用TXT确实比用数据库方便很多啊
qjgdftxmu 2008-08-27
  • 打赏
  • 举报
回复
这个我理解,但是超级过那么多我实在有些难以理解。
毕竟用CLICK点的时候没有那么慢啊 
qjgdftxmu 2008-08-27
  • 打赏
  • 举报
回复
我是没有找到资料,才被迫用这个的。
你能不能给我推荐一些资料啊
yanlongwuhui 2008-08-27
  • 打赏
  • 举报
回复
[Quote=引用楼主 qjgdftxmu 的帖子:]
可是我的TIMER的INTERVAL设定为100,可是显示的速度确远远没大于100MS,有将近2到3S啊。
[/Quote]
计时器是100MS触发一次,但触发后你需要去连接数据库,并读取表中的数据,这都需要时间啊,超过100MS当然很正常了。待显示的数据越多,时间需要越长
ZengHD 2008-08-27
  • 打赏
  • 举报
回复
晕死,使用共享内存啊,就算不会,也可以查找资料
另外,就算使用第三方做为传输通道,也不要用数据库,TXT不会吗?

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧