最近在研究开发移动设备的问题,稍微有了点心得。现解释如下:
Dim conn As New Data.SqlServerCe.SqlCeConnection()
Dim AppPath As String
Dim slocalDatabaseName As String
AppPath = System.IO.Path.GetDirectoryName(Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase.ToString())
slocalDatabaseName = AppPath & "/Northwind.sdf"
'conn.ConnectionString = "Persist Security Info = False;" & "Temp File Directory = '/TempDB/'; Temp File Max Size = 256;" & "Data Source = '" + slocalDatabaseName + "';" & "Password = '<password>'; File Mode = 'shared read';" & "Max Database Size = 256; Max Buffer Size = 1024"
conn.ConnectionString = "Persist Security Info = False;" & "Temp File Directory = '/TempDB/'; Temp File Max Size = 256;" & "Data Source = '" + slocalDatabaseName + "';" & "" & "Max Database Size = 256; Max Buffer Size = 1024"
conn.Open()
Dim cmdCreateTable As Data.SqlServerCe.SqlCeCommand
cmdCreateTable = New Data.SqlServerCe.SqlCeCommand("Insert Into Books (VarBookname,FloatBookmoney,dtInsertDate) Values ('.Net FrameWork 移动设备开发手册',63.0,getdate())", conn)
cmdCreateTable.CommandType = Data.CommandType.Text
Label1.Text = cmdCreateTable.ExecuteNonQuery().ToString
这里只给出了Vb.net的代码。在执行的结果中并么有能够看到数据表中有我添加的数据,原因可能是仿真终端无法记录的原因。以后如果有了真实的windows ce我再尝试以下。
SqlCeConnection windows ce中的连接对象
SqlCeCommand windows ce 中的Sql对象
另外值得一说的是我在sql server ce 中设置了日期类型的默认值为getdate()函数。但是ce系统中该函数执行的结果是非法的,必须在如上面例子中手动在sql语句中写出