vb.net wince sqlce
- VB.NET code
Dim FileName As String = "Data Source = \ResidentFlash\gui\Liu.sdf" If File.Exists("\ResidentFlash\gui\Liu.sdf") Then Dim sqlEngine As New Data.SqlServerCe.SqlCeEngine(FileName) ' Dim conn As New SqlCeConnection(FileName) Dim conn As New SqlCeConnection("Data Source =\ResidentFlash\GUI\liu.sdf") Dim cmd As New SqlCeCommand("", conn) conn.Open() DateOver = Microsoft.VisualBasic.Now cmd.CommandText = " INSERT INTO LiuDate(样号,样重,水分,毫克,百分数,日期) VALUES ('" + YangHao + "','" + CStr(YangZhong) + "','" + CStr(ShuiFen) + "','" + CStr(Han(TestTime - 1)) + "','" + CStr(HanShu) + "','" + DateOver + "')" cmd.ExecuteNonQuery() conn.Close() End If这段代码是在wince5下,保存一组数据到liu.sdf内,第一次使用时正常保存,第二次开始就出错,期间重启设备,重写程序,都不行。
出错语句为:“conn.Open()”
请问有可能是哪方面的原因?
[解决办法]
在关闭掉连接的时候记得释放到文件,也就是调用文件的diaponse()方法
[解决办法]
看看微软的例子:
If File.Exists("Test.sdf") Then
File.Delete("Test.sdf")
End If
Dim connStr As String = "Data Source = Test.sdf; Password = <password>"
Dim engine As New SqlCeEngine(connStr)
engine.CreateDatabase()
engine.Dispose()
Dim conn As SqlCeConnection = Nothing
Try
conn = New SqlCeConnection(connStr)
conn.Open()
Dim cmd As SqlCeCommand = conn.CreateCommand()
cmd.CommandText = "CREATE TABLE myTable (col1 int, col2 ntext)"
cmd.ExecuteNonQuery()
Catch
Finally
conn.Close()
End Try