使用 vb.net 将列添加到 dbf table
add column to dbf table with vb.net
当我需要使用 dbf 格式向 table 添加一列时遇到问题
这是添加列按钮事件的代码:
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
尝试以下语法:
ALTER TABLE MyDBase ADD COLUMN ZipCode C(10)
您是否尝试过下载和使用 Microsoft Visual Foxpro OleDB Provider.
您的连接字符串需要稍微简化为...
"Provider=VFPOLEDB.1;Data Source=C:\PathOnly\ToWhere\TheDataFilesExist\;"
可能是 "jet" 引擎驱动程序无法正确更改 table 结构。
假设您的计算机上安装了 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
祝你好运
当我需要使用 dbf 格式向 table 添加一列时遇到问题 这是添加列按钮事件的代码:
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
尝试以下语法:
ALTER TABLE MyDBase ADD COLUMN ZipCode C(10)
您是否尝试过下载和使用 Microsoft Visual Foxpro OleDB Provider.
您的连接字符串需要稍微简化为...
"Provider=VFPOLEDB.1;Data Source=C:\PathOnly\ToWhere\TheDataFilesExist\;"
可能是 "jet" 引擎驱动程序无法正确更改 table 结构。
假设您的计算机上安装了 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
祝你好运