WPF 自動選擇dll,以SQLite為例

來源:互聯網
上載者:User

標籤:style   blog   http   color   os   io   ar   資料   2014   

在學習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個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.