首页 > 代码库 > WPF 自动选择dll,以SQLite为例
WPF 自动选择dll,以SQLite为例
在学习sqlite的过程中,发现它的dll是区分32位和64位的,起初觉得很恼火,但是仔细看了下,
发现让程序自行选择dll其实也不是一件很麻烦的事情,如下:
1>创建一个sqlite数据
2>创建一个工程
3>新建一个类
1 class Entrance : Application 2 { 3 [STAThread] 4 static void Main() 5 { 6 string dll32 = @".\SQLitedll\System.Data.SQLite32.dll"; 7 string dll64 = @".\SQLitedll\System.Data.SQLite64.dll"; 8 string dllpath = @".\System.Data.SQLite.dll"; 9 10 if (IntPtr.Size == 8)11 {12 using (FileStream fs=File.Create(dllpath)){}13 File.Copy(dll64,dllpath,true);14 }15 else if(IntPtr.Size == 4)16 {17 using (FileStream fs=File.Create(dllpath)){}18 File.Copy(dll32,dllpath,true);19 }20 else21 {MessageBox.Show("ERROR!");}22 //start up the main window23 Application app = new Application();24 MainWindow window = new MainWindow();25 app.Run(window);26 }27 }
4>添加按钮响应事件
1 private void Button_Click(object sender, RoutedEventArgs e) 2 { 3 string strconn = @"Data Source=.\student.db;Version=3"; 4 string strcmd = "select * from stu"; 5 SQLiteConnection con = new SQLiteConnection(strconn); 6 try 7 { 8 con.Open(); 9 }10 catch (Exception ex)11 { MessageBox.Show(ex.ToString()); }12 13 14 SQLiteCommand cmd = new SQLiteCommand(strcmd, con);15 16 17 cmd.ExecuteNonQuery();18 19 SQLiteDataAdapter dataApp = new SQLiteDataAdapter(cmd);20 DataTable dt = new DataTable("a");21 dataApp.Fill(dt);22 dataGrid1.ItemsSource = dt.DefaultView;23 dataApp.Update(dt);24 con.Close();25 }26 }
5>最终效果(左边是win8 64位测试效果,右边是xp 32位测试效果)[注:新版的System.Data.SQLite.dll可能需要msvcr100.dll的支持,在测试
的机器上如果没有这个dll会莫名地崩溃,还catch不到异常,具体可能跟版本有关,可以用depends来查看一下]
WPF 自动选择dll,以SQLite为例
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。