PDA

View Full Version : سوال: convert به صورت RunTime از DBF به SQL2000



rooozaneh
چهارشنبه 07 اسفند 1387, 22:28 عصر
پیشاپیش از اینکه وقت میزارین و به سوالم فکر می کنین تشکر می کنم می خوام برنامه ای بنویسم که چند بانک از نوع DBF مربوط به Foxpro 2.6 را تبدیل به Table های SQL2000 بکنه. مشکل من اینه که این اتفاق باید runtime بیفته یعنی این ذو بانک دائم با هم در ارتباط هستن و عملیات convert دائم داره تکرار میشه. ترجیحا این convert ها باید در یه datagrid(یا چیزی شبیه ) نمایش هم داده بشه یعنی رکورد ها مشاهده بشه از دوستان کسی میتونه به من کمک کنه یا مثالی جایی دیده که من بتونم ازش چیزی یاد بگیرم.

sm4899
پنج شنبه 21 خرداد 1388, 18:44 عصر
PrivateSub btnLoadDbfFile_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLoadDbfFile.Click
With OpenFileDialog1
.RestoreDirectory = True
.FileName = ""
.Filter = "DataBase Files (*.DBF)|*.DBF"
EndWith
Dim dir_name AsString
Dim result2 As DialogResult = OpenFileDialog1.ShowDialog()
If (result2 = System.Windows.Forms.DialogResult.OK) Then
'ComboBox1.Enabled = False
'ComboBox2.Enabled = False
'ComboBox1.Items.Clear()
'ComboBox2.Items.Clear()
Try
Dim myDataSource AsString
myDataSource = OpenFileDialog1.FileName
With myDataSource
file_name = .Substring(.LastIndexOf("\") + 1, .LastIndexOf(".") - .LastIndexOf("\") - 1)
dir_name = .Substring(0, .LastIndexOf("\"))
EndWith
MsgBox(dir_name)
DataGridView1.DataSource = ""
ds = New DataSet
ds.Clear()
'Dim connectionString As String = _
' "Dsn=Visual FoxPro Database;sourcedb=" & dir_name & ";sourcetype=DBF;exclusive=No;" _
' & "backgroundfetch=Yes;collate=Machine;null=Yes;delet ed=Yes"
'Dim connectionString As String = _
' "Dsn=Visual FoxPro Database;sourcedb=" & dir_name & ";sourcetype=DBF;exclusive=No;" _
' & "backgroundfetch=Yes;collate=Machine;null=Yes;delet ed=Yes"
Dim connectionString AsString = "Driver={Driver do Microsoft dBase (*.dbf)};collatingsequence=ASCII;defaultdir=" & dir_name & ";deleted=0;driverid=277;fil=dBase IV;maxbuffersize=2048;maxscanrows=8;pagetimeout=5; safetransactions=0;statistics=0;threads=3;uid=admi n;usercommitsync=Yes"
'Dim connectionString As String = "Driver={Driver do Microsoft dBase (*.dbf)};collatingsequence=ASCII;defaultdir=C:\BAN K;deleted=0;driverid=277;fil=dBase IV;filedsn=C:\BANK\sdf.dsn;maxbuffersize=2048;maxs canrows=8;pagetimeout=5;safetransactions=0;statist ics=0;threads=3;uid=admin;usercommitsync=Yes"
Dim myQueryString AsString
myQueryString = "SELECT * FROM " & file_name
GetDataSetFromAdapter(ds, connectionString, myQueryString)
DataGridView1.DataSource = ds.Tables(0)
'myQueryString = "SELECT * into test FROM " & file_name
'GetDataSetFromAdapter(ds, connectionString, myQueryString)
'myQueryString = " INSERT INTO " & dir_name & "\" & "df SELECT date FROM ( " & file_name & " )"
'MsgBox(myQueryString)
'GetDataSetFromAdapter(ds, connectionString, myQueryString)
'btnSaveAsXml.Enabled = True
'btnSaveAsXls.Enabled = True
'btnSaveAXlsFastSameAsXml.Enabled = True
Catch ex As Exception
MsgBox(ex.Message)
EndTry
EndIf
EndSub
PrivateFunction GetDataSetFromAdapter( _
ByVal dataSet As DataSet, ByVal connectionString AsString, _
ByVal queryString AsString) As DataSet
Using connection AsNew OdbcConnection(connectionString)
Dim adapter AsNew OdbcDataAdapter(queryString, connection)
Try

connection.Open()
adapter.Fill(dataSet)
DataGridView1.DataSource = dataSet.Tables(0)
Catch ex As Exception
MsgBox(ex.Message)
EndTry
' The connection is automatically closed when the
' code exits the Using block.
EndUsing
Return dataSet
EndFunction

Afshin160
شنبه 23 خرداد 1388, 15:51 عصر
سلام...
منظرم يه مشكلي داره ... جواب نداد!!!