使用vb.net将列添加到dbf表

时间:2015-11-24 09:43:04

标签: vb.net datagridview dbf

当我需要使用dbf格式向表添加列时,我遇到了问题 这是添加列按钮事件的代码:

Try
        Form1.FillDataGridView("ALTER TABLE MyDBase ADD COLUMN ZipCode TEXT(10)")

    Catch ex As Exception
        MsgBox(ex.Message, MsgBoxStyle.Critical, Text)
    End Try

错误消息:不允许对该类型的对象进行操作

这是在DataGridView中加载dbf文件的代码:

 'OPEN CONNECTION TO dbf file
    cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "Data Source=C:\Users\tunes\Documents\;Extended Properties=dBase IV"
    cn.Open()

    'Load file from dbf into DataGridView1
    FillDataGridView("select * from MyDBase ")

最后是FillDataGridView函数:

da = New OleDbDataAdapter(Query, cn)
    dt.Clear()
    da.Fill(dt)

    With DataGridView1
        .DataSource = dt


    End With

3 个答案:

答案 0 :(得分:0)

请尝试以下语法:

ALTER TABLE MyDBase ADD COLUMN ZipCode C(10)

答案 1 :(得分:0)

您是否尝试过下载并使用Microsoft Visual Foxpro OleDB Provider

您的连接字符串需要简化为......

"Provider=VFPOLEDB.1;Data Source=C:\PathOnly\ToWhere\TheDataFilesExist\;"

也许是#34; jet"引擎驱动程序无法正确改变表结构。

答案 2 :(得分:0)

假设您在计算机上安装了Visual Foxpro,您可以在VB.net中执行以下操作:

Dim VFPAlterCmd As String = "ALTER TABLE MyTable ADD COLUMN ZipCode C(10)"
' NOTE -> "TEXT" is not a legitimate VFP Field type for this command string  

Dim oVFP = CreateObject("VisualFoxPro.Application")  
With oVFP  
   .DoCmd(***whatever VFP Commands desired (including SQL commands)***)   
   .DoCmd("USE MyTable EXCLUSIVE")
   .DoCmd(VFPAlterCmd)  
   .DoCmd("CLOSE DATABASES ALL")
End With  
oVFP.Quit()  
oVFP = Nothing  

祝你好运