如何在一个应用程序中创建SQL CE 3.5和4.0数据库 [英] How to create SQL CE 3.5 and 4.0 databases in one app
本文介绍了如何在一个应用程序中创建SQL CE 3.5和4.0数据库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在一个应用程序中创建SQL Server Compact 3.5和4.0数据库的方法是什么?
创建数据库的代码很简单:
What is a way to create SQL Server Compact 3.5 and 4.0 databases in a one application?
The code to create database is simple:
Imports System.Data.SqlServerCe
Friend Function CreateDatabase(ByVal connectionString As String) As Boolean
Dim engine As SqlCeEngine = Nothing
Try
engine = New SqlCeEngine
engine.LocalConnectionString = connectionString
engine.CreateDatabase()
Return True
Catch ex As SqlCeException
MsgBox(ex.Message, MsgBoxStyle.Critical)
Return False
Finally
If engine IsNot Nothing Then engine.Dispose()
End Try
End Function
但它只允许为一个版本创建数据库。
But it allows creating databases only for one version.
推荐答案
我已经解决了这个任务。
新的功能代码:
I've solved the task.
The new function code:
Imports System.Reflection
Imports System.Data.Common
Friend Function CreateDatabase(ByVal factory As DbProviderFactory, ByVal connectionString As String) As Boolean
Dim asm As Assembly = Assembly.Load(factory.GetType.Assembly.FullName)
Dim t As Type = asm.GetType("System.Data.SqlServerCe.SqlCeEngine")
Dim engine = Nothing
Try
engine = Activator.CreateInstance(t)
engine.LocalConnectionString = connectionString
engine.CreateDatabase()
Return True
Catch ex As SystemException
MsgBox(ex.Message, MsgBoxStyle.Critical)
Return False
Finally
If engine IsNot Nothing Then engine.Dispose()
End Try
End Function
用法:
Usage:
Dim factory As DbProviderFactory
Dim connectionString As String
factory = DbProviderFactories.GetFactory("System.Data.SqlServerCe.4.0")
connectionString = "Data Source=test40.sdf;"
CreateDatabase(factory, connectionString)
factory = DbProviderFactories.GetFactory("System.Data.SqlServerCe.3.5")
connectionString = "Data Source=test35.sdf;"
CreateDatabase(factory, connectionString)
这篇关于如何在一个应用程序中创建SQL CE 3.5和4.0数据库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文