当我需要使用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
答案 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
祝你好运