请问一下如何在C#中连接DBF文件?为这个问题头疼好几天了,总是提示一个问题
[b]ERROR [42000] [Microsoft][ODBC Visual FoxPro Driver]Command contains unrecognized phrase/keyword.[/b]以下是我的代码..麻烦各位老大看看
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.Odbc;namespace vfpTest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
try
{
string table = @"D:\Work\Visual Studio 2010\Projects\Test\Test\data\yjs.dbf";
string link = @"D:\Work\Visual Studio 2010\Projects\Test\Test\data";
string connstr = @"Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB=" +link + ";Exclusive=Yes;NULL=NO;Collate=Machine;BACKGROUNDFETCH=NO;DELETED=NO";
OdbcConnection conn = new OdbcConnection(connstr); //conn.ConnectionString = connstr;
//conn.Open(); OdbcCommand cmd = new OdbcCommand();
string sql = @"select * from " + table;
cmd.CommandText = sql;
cmd.Connection = conn; conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
MessageBox.Show("数据库连接成功");
OdbcDataAdapter da = new OdbcDataAdapter(sql, conn);
DataTable dt = new DataTable();
da.Fill(dt);
this.label1.Text = "总共" + dt.Rows.Count + "条记录";
}
catch (Exception ex)
{ MessageBox.Show(ex.Message);
}
}
}
}
[b]ERROR [42000] [Microsoft][ODBC Visual FoxPro Driver]Command contains unrecognized phrase/keyword.[/b]以下是我的代码..麻烦各位老大看看
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.Odbc;namespace vfpTest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
try
{
string table = @"D:\Work\Visual Studio 2010\Projects\Test\Test\data\yjs.dbf";
string link = @"D:\Work\Visual Studio 2010\Projects\Test\Test\data";
string connstr = @"Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB=" +link + ";Exclusive=Yes;NULL=NO;Collate=Machine;BACKGROUNDFETCH=NO;DELETED=NO";
OdbcConnection conn = new OdbcConnection(connstr); //conn.ConnectionString = connstr;
//conn.Open(); OdbcCommand cmd = new OdbcCommand();
string sql = @"select * from " + table;
cmd.CommandText = sql;
cmd.Connection = conn; conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
MessageBox.Show("数据库连接成功");
OdbcDataAdapter da = new OdbcDataAdapter(sql, conn);
DataTable dt = new DataTable();
da.Fill(dt);
this.label1.Text = "总共" + dt.Rows.Count + "条记录";
}
catch (Exception ex)
{ MessageBox.Show(ex.Message);
}
}
}
}
cmd.ExecuteNonQuery();
conn.Close();
MessageBox.Show("数据库连接成功");
2、da.Fill(dt);我以前fill里边都是DataSet,没用过DataTable。你为何不用标准的方法?
DataSet ds = new DataSet();
da.fill(ds,"xyz");