从VB.Net访问VFP表 [英] accessing VFP tables from VB.Net

查看:76
本文介绍了从VB.Net访问VFP表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图从VFP表中提取数据的响应时间非常糟糕

使用.net - 就像2分钟一样!有人可以帮忙吗?


f:\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Imports System.Data.OleDb


Public Class Form1

Dim myOleDbConnection作为OleDbConnection

Dim myOleDbCommand作为OleDbCommand

Dim myOleDbDataAdapter作为OleDbDataAdapter


Dim dt作为新数据表


Private Sub Button1_Click(ByVal sender作为System.Object,ByVal e As

System.EventArgs)处理Button1.Click

Dim starttime As DateTime


myOleDbConnection =新的

OleDbConnection(" Provider = vfpoledb.1;数据源= i:\;整理

序列=一般&);

myOleDbCommand =新OleDbCommand

myOleDbDataAdapter =新OleDbDataAdapter


昏暗字段,来自As String


fields =" select btn.btn,arcust01.l astpay,arcust01.balance"

from =" from i:\ btn,f:\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ btn =''9128675309''"


myOleDbCommand.CommandText = fields&来自

myOleDbCommand.Connection = myOleDbConnection


myOleDbDataAdapter.SelectCommand = myOleDbCommand


starttime = Now()

myOleDbDataAdapter.Fill(dt)


MessageBox.Show(" done!"&

Math.Round(Now。减去(starttime).TotalSeconds,4).ToString)

DataGridView1.DataSource = dt

End Sub


结束班

I''m getting terrible response times trying to pull data from VFP tables
using .net--like 2 minutes! Can someone help?

f:\arcust01 currently contains 187,728 records and is indexed on CUSTNO
i:\btn currently contains 5,999,657 records and is indexed on BTN
Imports System.Data.OleDb

Public Class Form1
Dim myOleDbConnection As OleDbConnection
Dim myOleDbCommand As OleDbCommand
Dim myOleDbDataAdapter As OleDbDataAdapter

Dim dt As New DataTable

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim starttime As DateTime

myOleDbConnection = New
OleDbConnection("Provider=vfpoledb.1;Data Source=i:\;Collating
Sequence=general")
myOleDbCommand = New OleDbCommand
myOleDbDataAdapter = New OleDbDataAdapter

Dim fields, from As String

fields = "select btn.btn, arcust01.lastpay, arcust01.balance "
from = "from i:\btn, f:\arcust01 where btn.btn =
arcust01.custno and btn.btn = ''9128675309''"

myOleDbCommand.CommandText = fields & from
myOleDbCommand.Connection = myOleDbConnection

myOleDbDataAdapter.SelectCommand = myOleDbCommand

starttime = Now()
myOleDbDataAdapter.Fill(dt)

MessageBox.Show("done! " &
Math.Round(Now.Subtract(starttime).TotalSeconds, 4).ToString)

DataGridView1.DataSource = dt
End Sub

End Class

推荐答案

尝试

from =" from i:\ btn JOIN f:\\\\\\ btn.btn =

arcust01.custno WHERE btn.btn =''9128675309''"




from = 来自i:\ btn JOIN f:\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
确保它是一行。

-Anders

" cj" < cj@nospam.nospamwrote in message

news:%2 **************** @ TK2MSFTNGP03.phx.gbl ...
Try
from = "from i:\btn JOIN f:\arcust01 ON btn.btn =
arcust01.custno WHERE btn.btn = ''9128675309''"

or
from = "from i:\btn JOIN f:\arcust01 ON btn.btn = arcust01.custno
WHERE btn.btn = ''9128675309''"

Make sure it comes out as one line.
-Anders
"cj" <cj@nospam.nospamwrote in message
news:%2****************@TK2MSFTNGP03.phx.gbl...

我正在尝试从VFP表中提取数据的响应时间很长

使用.net - 就像2分钟一样!有人可以帮忙吗?


f:\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\


Imports System.Data.OleDb


Public Class Form1

Dim myOleDbConnection作为OleDbConnection

Dim myOleDbCommand作为OleDbCommand

Dim myOleDbDataAdapter作为OleDbDataAdapter


Dim dt作为新数据表


私有子Button1_Click(ByVal sender As System.Object,ByVal e As

System.EventArgs)处理Button1.Click

Dim starttime As DateTime


myOleDbConnection =新OleDbConnection(" Provider = vfpoledb.1; Data

Source = i:\;整理序列=一般&);

myOleDbCommand =新OleDbCommand

myOleDbDataAdapter =新OleDbDataAdapter


昏暗字段,来自As String

fields =" select btn.btn,arcust01.lastpay,arcust01.balance"

from =" from i:\ btn,f:\ astust01其中btn。 btn = arcust01.custno

和btn.btn ='''9128675309''"


myOleDbCommand.CommandText = fields&来自

myOleDbCommand.Connection = myOleDbConnection


myOleDbDataAdapter.SelectCommand = myOleDbCommand


starttime = Now()

myOleDbDataAdapter.Fill(dt)


MessageBox.Show(" done!"&

Math.Round(Now。减去(starttime).TotalSeconds,4).ToString)

DataGridView1.DataSource = dt

End Sub


结束类
I''m getting terrible response times trying to pull data from VFP tables
using .net--like 2 minutes! Can someone help?

f:\arcust01 currently contains 187,728 records and is indexed on CUSTNO
i:\btn currently contains 5,999,657 records and is indexed on BTN
Imports System.Data.OleDb

Public Class Form1
Dim myOleDbConnection As OleDbConnection
Dim myOleDbCommand As OleDbCommand
Dim myOleDbDataAdapter As OleDbDataAdapter

Dim dt As New DataTable

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim starttime As DateTime

myOleDbConnection = New OleDbConnection("Provider=vfpoledb.1;Data
Source=i:\;Collating Sequence=general")
myOleDbCommand = New OleDbCommand
myOleDbDataAdapter = New OleDbDataAdapter

Dim fields, from As String

fields = "select btn.btn, arcust01.lastpay, arcust01.balance "
from = "from i:\btn, f:\arcust01 where btn.btn = arcust01.custno
and btn.btn = ''9128675309''"

myOleDbCommand.CommandText = fields & from
myOleDbCommand.Connection = myOleDbConnection

myOleDbDataAdapter.SelectCommand = myOleDbCommand

starttime = Now()
myOleDbDataAdapter.Fill(dt)

MessageBox.Show("done! " &
Math.Round(Now.Subtract(starttime).TotalSeconds, 4).ToString)

DataGridView1.DataSource = dt
End Sub

End Class



我不认为oledbproviders使用foxpro索引!

cj写道:
i dont think the oledbproviders use the foxpro indexes!
cj wrote:

我试图从VFP表中提取数据的响应时间很长

使用.net - 就像2分钟一样!有人可以帮忙吗?


f:\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\


Imports System.Data.OleDb


Public Class Form1

Dim myOleDbConnection作为OleDbConnection

Dim myOleDbCommand作为OleDbCommand

Dim myOleDbDataAdapter作为OleDbDataAdapter


Dim dt作为新数据表


私有子Button1_Click(ByVal sender As System.Object,ByVal e As

System.EventArgs)处理Button1.Click

Dim starttime As DateTime


myOleDbConnection =新

OleDbConnection(" Provider = vfpoledb.1;数据源= i:\;整理

序列=一般)

myOleDbCommand =新OleDbCommand

myOleDbDataAdapter =新OleDbDataAdapter


Dim字段,来自As String


fields =" select btn.btn,arcust01.lastpay,arcust01.balance"

from =" from i:\ btn,f :\\\carc01其中btn.btn = arcust01.custno

和btn.btn =''9128675309''"


myOleDbCommand.CommandText = fields& ;来自

myOleDbCommand.Connection = myOleDbConnection


myOleDbDataAdapter.SelectCommand = myOleDbCommand


starttime = Now()

myOleDbDataAdapter.Fill(dt)


MessageBox.Show(" done!"&

Math.Round(Now。减去(starttime).TotalSeconds,4).ToString)

DataGridView1.DataSource = dt

End Sub


结束班
I''m getting terrible response times trying to pull data from VFP tables
using .net--like 2 minutes! Can someone help?

f:\arcust01 currently contains 187,728 records and is indexed on CUSTNO
i:\btn currently contains 5,999,657 records and is indexed on BTN
Imports System.Data.OleDb

Public Class Form1
Dim myOleDbConnection As OleDbConnection
Dim myOleDbCommand As OleDbCommand
Dim myOleDbDataAdapter As OleDbDataAdapter

Dim dt As New DataTable

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim starttime As DateTime

myOleDbConnection = New
OleDbConnection("Provider=vfpoledb.1;Data Source=i:\;Collating
Sequence=general")
myOleDbCommand = New OleDbCommand
myOleDbDataAdapter = New OleDbDataAdapter

Dim fields, from As String

fields = "select btn.btn, arcust01.lastpay, arcust01.balance "
from = "from i:\btn, f:\arcust01 where btn.btn = arcust01.custno
and btn.btn = ''9128675309''"

myOleDbCommand.CommandText = fields & from
myOleDbCommand.Connection = myOleDbConnection

myOleDbDataAdapter.SelectCommand = myOleDbCommand

starttime = Now()
myOleDbDataAdapter.Fill(dt)

MessageBox.Show("done! " &
Math.Round(Now.Subtract(starttime).TotalSeconds, 4).ToString)

DataGridView1.DataSource = dt
End Sub

End Class


我很确定他们这样做但我不知道。无论如何,我当然希望我能够将响应时间缩短到一两秒而不是2分钟一个

方式。


Jay B写道:
I''m pretty sure they do but I don''t know. Anyway, I darn sure hope I
can get response time down to a second or two instead of 2 minutes one
way or another.

Jay B wrote:

i不要认为oledbproviders使用foxpro索引!


cj写道:
i dont think the oledbproviders use the foxpro indexes!
cj wrote:

>我正在尝试使用.net从VFP
表中提取数据的响应时间非常糟糕 - 就像2分钟一样!有人可以提供帮助吗?

f:\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ $ b Imports System.Data.OleDb
公共类Form1
Dim myOleDbConnection作为OleDbConnection
Dim myOleDbCommand作为OleDbCommand
Dim myOleDbDataAdapter作为OleDbDataAdapter
Dim dt As New DataTable
私有Sub Button1_Click(ByVal sender As System.Object,ByVal e
As System.EventArgs)处理Button1.Click
Dim starttime As DateTime

myOleDbConnection =新的
OleDbConnection(" Provider = vfpoledb.1; Data Source = i:\; Collat​​ing
Sequence = general")
myOleDbCommand = New OleDbCommand
myOleDbDataAdapter =新的OleDbDataAdapter

昏暗的字段,来自As String

fields =" select btn.btn,arcust01.lastpay,arcust01.balance"
from =" from i:\ btn,f:\\\\ [::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: CommandText = fields&来自
myOleDbCommand.Connection = myOleDbConnection

starttime = Now()
myOleDbDataAdapter.Fill(dt)

MessageBox.Show(" done!"&
Math.Round(Now.Subtract(starttime).TotalSeconds,4).ToString)

DataGridView1.DataSource = dt
End Sub

结束班
>I''m getting terrible response times trying to pull data from VFP
tables using .net--like 2 minutes! Can someone help?

f:\arcust01 currently contains 187,728 records and is indexed on CUSTNO
i:\btn currently contains 5,999,657 records and is indexed on BTN
Imports System.Data.OleDb

Public Class Form1
Dim myOleDbConnection As OleDbConnection
Dim myOleDbCommand As OleDbCommand
Dim myOleDbDataAdapter As OleDbDataAdapter

Dim dt As New DataTable

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles Button1.Click
Dim starttime As DateTime

myOleDbConnection = New
OleDbConnection("Provider=vfpoledb.1;Data Source=i:\;Collating
Sequence=general")
myOleDbCommand = New OleDbCommand
myOleDbDataAdapter = New OleDbDataAdapter

Dim fields, from As String

fields = "select btn.btn, arcust01.lastpay, arcust01.balance "
from = "from i:\btn, f:\arcust01 where btn.btn =
arcust01.custno and btn.btn = ''9128675309''"

myOleDbCommand.CommandText = fields & from
myOleDbCommand.Connection = myOleDbConnection

myOleDbDataAdapter.SelectCommand = myOleDbCommand

starttime = Now()
myOleDbDataAdapter.Fill(dt)

MessageBox.Show("done! " &
Math.Round(Now.Subtract(starttime).TotalSeconds , 4).ToString)

DataGridView1.DataSource = dt
End Sub

End Class


这篇关于从VB.Net访问VFP表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆