2013-03-25 90 views
0

我有一個程序需要更新dbf文件中的數據。但它會一直出現錯誤「操作符/操作數類型不匹配」。這裏是示例代碼:更新dbf文件時操作符/操作數類型不匹配

Dim con As OleDbConnection = New OleDbConnection("Provider=vfpoledb;Data Source=C:\folder\paytran.dbf;Collating Sequence=machine;") 
    Try 


     Dim strSQL As String = "UPDATE paytran.dbf SET workhr = 20 WHERE empno = 102" 
     Dim cmd As OleDbCommand = New OleDbCommand(strSQL, con) 
     con.Open() 
     Dim myDA As OleDbDataAdapter = New OleDbDataAdapter(cmd) 
     Dim myDataSet As DataSet = New DataSet() 
     ' Using DataAdapter object fill data from database into DataSet object 
     myDA.Fill(myDataSet, "MyTable") 
     ' Binding DataSet to DataGridView 
     DGV.DataSource = myDataSet.Tables("MyTable").DefaultView 
     con.Close() 
     con = Nothing 
    Catch ex As Exception 
     MessageBox.Show(ex.Message, "Error Select Data") 

    Finally 
     If con IsNot Nothing Then 
      con.Close() 
     End If 
    End Try 

請幫助我..

+0

dbf文件是數據庫中的表..如果dbc是數據庫名...現在我沒有數據庫(.dbc)..只有表(.dbf)。 – xana 2013-03-25 02:35:11

+0

什麼數據類型是'workhr'和'empno'?數?字符? – Tim 2013-03-25 05:04:02

+0

其他一些東西 - 我過去曾用dBase(不是Visual FoxPro,但它們很相似)使用OleDb。在你的連接字符串中,只給DBF文件的路徑(即'C:\ folder' - 省略DBF文件),並且在你的更新中只使用沒有擴展名的文件名(即'paytran',而不是'paytran .dbf')。 – Tim 2013-03-25 05:13:15

回答

0

它是你的連接字符串。連接字符串應該只需指向數據文件所在的PATH,那麼所有基於SQL的命令將默認能夠看到該路徑中的任何.DBF表(如果子路徑存在,則轉發)。

Data Source=C:\folder 

代替

Data Source=C:\folder\paytran.dbf 

所以,現在如果你在30桌「C:\文件夾」,你現在可以從所有這些的根據需要進行查詢。

-1

你需要明確打開和關閉DBF。試試:

Dim strSQL As String = "Use paytran in 0 shared;UPDATE paytran SET workhr = 20 WHERE empno = 102;use in select('paytran')" 
相關問題