C# 构造函数执行符合指定的绑定约束的调用时引发了异常

时间:2022-09-21 11:37:08
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Data.SQLite;
namespace Mysq
{
    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            string sm = "D:\\test.db";
            SQLiteConnection.CreateFile(sm);
         }
    }
}
一加上这句SQLiteConnection.CreateFile(sm);就错误
对类型“Mysq.MainWindow”的构造函数执行符合指定的绑定约束的调用时引发了异常。”,行号为“3”,行位置为“9”。

这是为什么啊,求大神指点。。

10 个解决方案

#1


不要在构造函数里便执行业务处理,因为构造函数是不能进行调试的。

你可以把它挪到 form_load中执行,那样就可以进行调试了。

#2


我把它放在了Load里又出现了这个:

其他信息: 混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集。

#3


解决了。。。。

混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集

 

其调用的方法是从sqlite数据库中获取原来已经使用过的数据库连接,当时也没注意,就是准备设断点然后单步调试,结果竟然是断点无法进入方法体内,后来仔细看了一下方法体的时候发现了一个问题,就是现有的System.Data.Sqlite这个数据访问provider是针对.NET2.0环境开发(最新的版本是1.0.66.0,2010年4月18日发布的),而目前官方也没有给出最新的.NET4的数据访问支持。


既然出现这个问题,那肯定是上GOOGLE搜索解决方案,毕竟微软不可能因为升级到了.NET4.0的程序无法访问.NET2.0的程序集吧。后来在著名的*.com上果然找到了解决方案,就是在app.config中添加一个配置节:startup

<startup useLegacyV2RuntimeActivationPolicy="true">

<supportedRuntime version="v4.0"/>

</startup>

#4


大师一句话比什么都有用是吧
下次就知道不要把代码放到构造函数里调试了
这样只要能够调试出错误信息,自己就能解决了

#5


是啊,分给你了。。。

#6


不能给分??

#7


引用 5 楼 u010645943 的回复:
是啊,分给你了。。。

不要给我,我又没帮上什么忙

#8


引用 1 楼 sp1234 的回复:
不要在构造函数里便执行业务处理,因为构造函数是不能进行调试的。

你可以把它挪到 form_load中执行,那样就可以进行调试了。
C# 构造函数执行符合指定的绑定约束的调用时引发了异常

#9


想给分,点"结贴".
分不要乱给,谁帮你忙你给谁

#10


<startup useLegacyV2RuntimeActivationPolicy="true">

<supportedRuntime version="v4.0"/>

</startup>


我添加来,,不管用

#1


不要在构造函数里便执行业务处理,因为构造函数是不能进行调试的。

你可以把它挪到 form_load中执行,那样就可以进行调试了。

#2


我把它放在了Load里又出现了这个:

其他信息: 混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集。

#3


解决了。。。。

混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集

 

其调用的方法是从sqlite数据库中获取原来已经使用过的数据库连接,当时也没注意,就是准备设断点然后单步调试,结果竟然是断点无法进入方法体内,后来仔细看了一下方法体的时候发现了一个问题,就是现有的System.Data.Sqlite这个数据访问provider是针对.NET2.0环境开发(最新的版本是1.0.66.0,2010年4月18日发布的),而目前官方也没有给出最新的.NET4的数据访问支持。


既然出现这个问题,那肯定是上GOOGLE搜索解决方案,毕竟微软不可能因为升级到了.NET4.0的程序无法访问.NET2.0的程序集吧。后来在著名的*.com上果然找到了解决方案,就是在app.config中添加一个配置节:startup

<startup useLegacyV2RuntimeActivationPolicy="true">

<supportedRuntime version="v4.0"/>

</startup>

#4


大师一句话比什么都有用是吧
下次就知道不要把代码放到构造函数里调试了
这样只要能够调试出错误信息,自己就能解决了

#5


是啊,分给你了。。。

#6


不能给分??

#7


引用 5 楼 u010645943 的回复:
是啊,分给你了。。。

不要给我,我又没帮上什么忙

#8


引用 1 楼 sp1234 的回复:
不要在构造函数里便执行业务处理,因为构造函数是不能进行调试的。

你可以把它挪到 form_load中执行,那样就可以进行调试了。
C# 构造函数执行符合指定的绑定约束的调用时引发了异常

#9


想给分,点"结贴".
分不要乱给,谁帮你忙你给谁

#10


<startup useLegacyV2RuntimeActivationPolicy="true">

<supportedRuntime version="v4.0"/>

</startup>


我添加来,,不管用