XAML 给出加载失败错误

Posted

技术标签:

【中文标题】XAML 给出加载失败错误【英文标题】:XAML gives Load Failure error 【发布时间】:2012-04-13 02:02:25 【问题描述】:

我正在做一个项目,我们使用 EF 进行数据访问,使用 WPF 和 MVVM 进行用户界面。

我将视图模型绑定到窗口的数据上下文。此视图模型有一个默认构造函数,定义如下:

 public KonumVM()
    
        LocationOperations = new LocationOperations();
        LocationNames = new ObservableCollection<string>();
        Corporations= new ObservableCollection<Kurum>();
        //Corporations= LocationOperations.GetCorpValues();

        //foreach (var corp in Corporations)
        //
        //    LocationNames.Add(corp.Name);
        //
    

注释行是我查询数据库的地方。如果未注释这些行,当我尝试编辑绑定到此视图模型的窗口的 XAML 代码时,我得到一个异常,我认为这是一个 XAML 加载失败,它阻止了设计器。例外是在消息的末尾。当我注释数据库查询行时,设计师很好,没有例外。

我该怎么办?我应该将数据库访问代码移动到默认构造函数以外的其他地方吗?

无法打开请求的数据库“DemirbaşEntityLibrary.DemirbaşContext” 通过登录。登录失败。用户“Rfid\Mert”登录失败。 在 System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection 拥有对象)在 System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection 拥有连接)在 System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection 外部连接,DbConnectionFactory 连接工厂)在 System.Data.SqlClient.SqlConnection.Open() 在 System.Data.EntityClient.EntityConnection.OpenStoreConnectionIf(布尔 openCondition, DbConnection storeConnectionToOpen, DbConnection originalConnection,字符串异常代码,字符串尝试操作, Boolean&closeStoreConnectionOnFailure)

【问题讨论】:

如果您不需要设计器中的连接性,请尝试查看此SO Question 这似乎是我正在寻找的,但是在使用“this”的方法中,依赖对象参数应该是什么?我正在使用 MVVM。 DesignerProperties.GetIsInDesignMode(this) 这可能更符合您的需求***.com/questions/2498521/… 是的,在代码隐藏中分配 DataContext 解决了我的问题。谢谢! 【参考方案1】:

浏览用于连接数据库的连接字符串。如果您的网站使用 MSSQL 数据库,请参考下面给出的示例连接字符串:

其中数据源=xxxx; = 服务器的 IP 地址 初始 目录=xxxxxx = 数据库名用户 ID=xxxxxx = 数据库用户名 密码=#xxxxx#" = 数据库密码

确保您能够使用数据库详细信息(用户名和密码)远程连接到 SQL Server Management Studio。

如果您使用连接字符串中使用的用户名和密码无法连接到数据库,请尝试重置数据库用户的密码并尝试连接。它将解决问题...

您还可以查看以下可能对您有所帮助的链接:http://blog.sqlauthority.com/2009/08/20/sql-server-fix-error-cannot-open-database-requested-by-the-login-the-login-failed-login-failed-for-user-nt-authoritynetwork-service/

【讨论】:

我的连接字符串似乎是正确的,因为当我运行应用程序时,它工作正常。我已经完成了您提供的链接中说明的步骤,但也没有用。 @ArifMertAkçakaya 您能否在整个项目中搜索用户“Rfid\Mert”并检查为他设置的密码。此外,当您尝试使用此用户登录数据库时,您成功了吗? 连接字符串是:" 当我登录数据库时这个帐户我成功了。【参考方案2】:

解决方案是将我的上下文绑定代码移动到代码隐藏文件中,因此 XAML 解析器在我设计 UI 时不会尝试访问数据库。

this.DataContext = new MyViewModel();

如果您不喜欢代码隐藏方法(出于某种原因),您可以在完成 UI 设计后将其移回您的 XAML 代码。

【讨论】:

以上是关于XAML 给出加载失败错误的主要内容,如果未能解决你的问题,请参考以下文章

处理主机应用程序中的模块联合失败

Cassandra datastax 给出错误“所有主机尝试查询失败”

导出到excel失败,错误(控件加载失败)

Axios 模拟适配器给出错误“错误:请求失败,状态码 404”

当我尝试使用地理编码器获取地址时,给出“未处理的异常:PlatformException(失败,失败,null)”的运行时错误

Access ODBC passthru 查询失败,错误 3146 给出不同的错误描述文本