读取dbf文件记录出错,求助

hanfaye 2003-08-19 12:18:59
代码如下:
private string s_connString=@"Provider=vfpoledb.1; Data Source=E:\test.DBF";

public void OpenConnection()
{
OleDbConnection myConnection = new OleDbConnection(s_connString);
try
{
myConnection.Open();
Console.Write("connection open success!");
DataTable dt=new DataTable();
OleDbDataAdapter myDataAdapter = new OleDbDataAdapter("select * from test",myConnection);
OleDbCommandBuilder builder=new OleDbCommandBuilder(myDataAdapter);
myDataAdapter.Fill(dt);//(出错处)

}
catch(Exception ex)
{
Console.Write(ex.ToString());
}
finally
{
myConnection.Close();
Console.Write("connection close");
}
}
在上面标明出错的地方,总是提示NullReferenceException,请各位帮忙看看
...全文
52 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
gshope 2003-08-19
  • 打赏
  • 举报
回复
dt是table不是dataset呀,要填充到dataset才可以!
gshope 2003-08-19
  • 打赏
  • 举报
回复
dt是table不是dataset呀,要填充到dataset才可以!
jjcccc 2003-08-19
  • 打赏
  • 举报
回复
==》
DataSet ds=new DataSet

myDataAdapter.Fill(ds);
jjcccc 2003-08-19
  • 打赏
  • 举报
回复
重点是首先得把语法错误全部干掉,才能找更深的错误,如逻辑错误、运行错误。不是吗?
hanfaye 2003-08-19
  • 打赏
  • 举报
回复
自己顶,否则要沉底了
hanfaye 2003-08-19
  • 打赏
  • 举报
回复
我觉得那应该不是重点,因为我用DataSet试过了,也是有同样的错误.

我查的msdn有下面一段关于
OleDbDataAdapter.Fill Method

Adds or refreshes rows in the DataSet to match those in the data source.

Overload List
Inherited from DbDataAdapter.

[Visual Basic] Overloads Public Function Fill(DataTable) As Integer
[C#] public int Fill(DataTable);
[C++] public: int Fill(DataTable*);
[JScript] public function Fill(DataTable) : int;

我说一下整个过程,新建一个dbf的文件,在里面加了几条数据.然后运行上面的程序.就出现了上面的错误,
我也尝试过用下面的代替读取数据的那几行
OleDbCommand myCommand = new OleDbCommand("select * from test",myConnection );

OleDbDataReader myReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection);

while(myReader.Read()) //出错处
{
Console.WriteLine(myReader.GetString(0));
}
也会出现在同样的NullReferenceException
gxz01 2003-08-19
  • 打赏
  • 举报
回复
我在我这里试了一下,它说没有注册vfpoledb.1程序,
请问各位,这个程序在哪里能够找得到
jjcccc 2003-08-19
  • 打赏
  • 举报
回复
the fellow is DataAdapter.Fill method declaration:

[C#]
public abstract int Fill(
DataSet dataSet
);

so:
myDataAdapter.Fill(dt);//(出错处)
hanfaye 2003-08-19
  • 打赏
  • 举报
回复
自己顶
hanfaye 2003-08-19
  • 打赏
  • 举报
回复
奇怪,为什么你们都认为是DataSet的问题呢?
hanfaye 2003-08-19
  • 打赏
  • 举报
回复
这个我当然试过啦,
DataTable肯定可以的啦,应该不是这个问题,还会有其他的情况吗?
acewang 2003-08-19
  • 打赏
  • 举报
回复
更改为:
DataSet ds=new DataSet
myDataAdapter.Fill(ds);

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧