OdbcConnection到本地DBF文件在一个应用程序中失败,但在另一个应用程序中失败

时间:2012-08-09 15:14:23

标签: c# .net odbc database-connection dbf

问候stackoverflow,

我在我的两个C#项目中使用以下代码块,一个是我将这些方法和代码块原型化的项目,另一个是我的实际项目。

DataSet set = new DataSet();
String path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
File.Copy(path + "\\template.dbf", path + "\\" + DateTime.Now.ToString("yyyyMMdd") + ".dbf", true);

using (OdbcConnection connection = new OdbcConnection("Driver={Microsoft dBASE Driver (*.dbf)}; DriverID=277;Dbq=" + path + ";"))
{
    OdbcDataAdapter adapter = new OdbcDataAdapter(String.Format("SELECT * FROM {0}.dbf", DateTime.Now.ToString("yyyyMMdd")), connection);
    OdbcCommandBuilder builder = new OdbcCommandBuilder(adapter);
    connection.Open();
    adapter.Fill(set);

    // Database manipulation goes here

    adapter.Update(set);
}

在原型应用程序中,这个代码块工作得很好,而在另一个项目中,当我调用connection.Open();时,我得到一个OdbcException。两个项目中都存在template.dbf文件,两个项目都将该模板文件复制到输出构建目录,File.Copy()调用在两种情况下都运行良好,并且它们都逐字地使用此代码块但在一个项目中失败了,另一个没问题。我甚至更改了原型项目中的连接字符串,以便在另一个项目的构建目录中工作,并且工作正常。

这是我收到的例外情况:

ERROR [IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified

另外,我尝试在两个项目中连接到template.dbf文件而不是复制版本,原型项目正确连接而另一个项目失败并出现相同的异常。

我不能为我的生活弄清楚这两个项目之间的区别是什么。是否有一些我可以使用的代码块可以在两个同样的项目中起作用?

编辑:为了澄清这不是一个复杂的项目或任何事情。我只是使用Visual Studio提供的默认设置在Visual Studio 2010中处理两个简单的Windows控制台应用程序。

0 个答案:

没有答案