none
用VB.net2005 在wince开发板上操作数据库时遇到问题!急。 RRS feed

  • 问题

  •  If Not File.Exists("\My Documents\glx.sdf") Then
                Dim engine As New SqlCeEngine(connStr)
                engine.CreateDatabase()‘(这边有时会报 SQL 创建数据库遇到问题,但重新上电开发板就好了!)
                engine.Dispose()
                    conn.ConnectionString = "Data Source=\My Documents\glx.sdf"
                    conn.Open()’(打开数据库时,报未处理SqlCeException)
                    'Dim cmd As SqlCeCommand = conn.CreateCommand()
                    Dim cmd As New SqlCeCommand("CREATE TABLE GlxData(Time datetime ,NO1_motor nvarchar(20),NO2_motor nvarchar(20),NO3_motor nvarchar(20))", conn)
                    cmd.ExecuteNonQuery()
                    Dim cmd1 As New SqlCeCommand("CREATE TABLE ArmData(Time datetime ,TagName nvarchar(40),ArmPoint nvarchar(40),ArmMsg nvarchar(40))", conn)
                    cmd1.ExecuteNonQuery()
                    conn.Close()
                    cmd.Dispose()
                    cmd1.Dispose()
            End If

    以上程序是在Form1_Load里的,这里出现的问题是其一,

     Private Sub WArmDate(ByVal TagName As String, ByVal Point As String, ByVal msg As String)
            Dim conn As New SqlCeConnection()
            Dim cmd1 As New SqlCeCommand("", conn)
            conn.ConnectionString = "Data Source=\My Documents\glx.sdf"
            conn.Open()'(这里经常会报:未处理SqlCeException      但是有时会能通过)
            cmd1.CommandText = "INSERT INTO ArmData(Time, TagName, ArmPoint, ArmMsg) VALUES ('2009-12-11 13:22:45','glx','ssss','fdfdf')"
            cmd1.ExecuteNonQuery()
            cmd1.Dispose()
            conn.Close()
            conn.Dispose()
    End Sub
    以上程序是我要要向表里写数据。本来我是想把conn,cmd 都定全局变量的,可以经常报上面的错误,怕是几个地方都用的话,内存上有什么影响!所以定义了局部变量。
    但是不知道为什么还报上面的错误!
    很不能理解,可有时就能通过。
    还请各位指教!
    现在都停在这边了,急呀!

    2009年8月27日 1:57

答案

  • 我都关了呀?
    我前天查出好像跟我内存有关。我把内存调了一下,好了,然后一天都很顺。到了第二天,我想把存储的数据库,放在U盘上,我只是改了一下路径,其它什么也没有改呀。
    每次到创建数据库时就报错了
    engine.CreateDatabase()‘(这边有时会报 SQL 创建数据库遇到问题)
    这次,重新上电也没有用了,每次都报。
    创建数据库的代码我是放在from_load里的呀。


    可是我新建了一个工程,单独创建数据库,就OK!创建数据库代码是一样的。
    很是不解!

    2009年9月2日 8:46

全部回复

  • 代码看上去是对的,看一在conn.open用完之后,要close掉,检查一下,把相关的connection关掉后,再测试一下。
    Please remember to mark the replies as answers if they help and unmark them if they provide no help
    2009年9月1日 2:54
    版主
  • 我都关了呀?
    我前天查出好像跟我内存有关。我把内存调了一下,好了,然后一天都很顺。到了第二天,我想把存储的数据库,放在U盘上,我只是改了一下路径,其它什么也没有改呀。
    每次到创建数据库时就报错了
    engine.CreateDatabase()‘(这边有时会报 SQL 创建数据库遇到问题)
    这次,重新上电也没有用了,每次都报。
    创建数据库的代码我是放在from_load里的呀。


    可是我新建了一个工程,单独创建数据库,就OK!创建数据库代码是一样的。
    很是不解!

    2009年9月2日 8:46