【问题标题】:C# reference to type component claims it is defined in system, but it is not foundC# 对类型组件的引用声称它在系统中定义,但未找到
【发布时间】:2017-05-09 18:18:09
【问题描述】:

我正在开发一个应用程序(空白解决方案)来读取、写入和编辑 access 数据库文件中的数据。

我创建了一个 OleDbConnection 对象并给它一个在另一个控制台应用程序解决方案中工作的连接字符串。

但是,当我打开或关闭连接时,我得到了错误 “Cs7069 引用类型组件声称它在系统中定义,但未找到”

  OleDbConnection a = new OleDbConnection();
//given connection string
a.Open();
a.Close();

当我调用 Open() 和 Close() 方法时出现错误。错误发生在编译时而不是运行时。 [视觉工作室 2015]

我试过了: 重建解决方案 更改各种参考 清理然后重建解决方案

注意:我的解决方案中只有一个项目

请帮忙, 谢谢

【问题讨论】:

  • C# 不区分大小写。这是Open()Close()...
  • @MatíasFidemraizer 一定是错字,编译时错误不会给你在 OP 中显示的消息。顺便说一句,双重否定是怎么回事?简单地说c#区分大小写不是更容易吗?实际上,我必须阅读两次以确保您说的是对的;)
  • @InBetween 复仇! ;D
  • @user6019827 好的,你应该提供可以编译的sn-ps!
  • 在手机上提问几乎总是一个坏主意,因为您无法像在笔记本电脑/台式机上一样检查它。请记住,Stack Overflow 的目的是创建一个高质量问题和答案的存储库 - 提出一个好问题需要时间,最好在正确的设备上完成。

标签: c# visual-studio-2015 compiler-errors uwp oledbconnection


【解决方案1】:

让我做一些猜测。

您正在构建 UWP 应用吗?如果是这样,你就不能使用 OleDbConnection,只有这个.NET subset 适合你。

如果不是并且您的应用不是 UWP,那么您能否通过创建空控制台项目、将 System.Data 添加到引用并创建最小程序来重现错误,例如:

class Program
{
    static void Main(string[] args)
    {
        using (var connection = new System.Data.OleDb.OleDbConnection{ConnectionString = ".. your connection string .."})
        {
            connection.Open();

            Console.WriteLine("DataSource: {0}, database: {1}",connection.DataSource, connection.Database);
        }         
    }
}

最后也是最不可能的,这个错误也可能是由于您有多个名称模仿 System.Data 的程序集,但我敢打赌这不是您的情况。

【讨论】:

  • 我认为解决这个问题的尝试很糟糕。您的推理也可以应用于可移植库,甚至是旧的 Compact Framework!或者 Xamarin... 或者.... 或者... 我会放弃这个答案,如果 OP 正在使用 UWP...
  • 这是我的最佳猜测,因为 OP 正在开发银行应用程序(如此移动,嵌入的可能性较小)。让我们拭目以待 OP 的答案
  • 如果你在正确的轨道上,我觉得 OP 应该用 [uwp] 标记问题...
  • 是的,它是一个 UWP 应用。如果是这种情况,我可以使用什么来处理 Microsoft Office 程序?
  • 在控制台应用程序和表单应用程序中:一切正常
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-12
  • 2018-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多