• WinCE下SQLCE数据库开发(VS,VB.net,VC++)


    WinCE下SQLCE数据库开发(VS,VB.net,VC++)
     

    WinCESQLCE数据库开发

    微软的SQL Server数据库由于其功能强大、方便使用,因此在很多行业都被广泛应用。基于智能设备,微软推出了SQL Server的精简版SQL Server FOR CE,简称为SQLCESQLCE的推出,使得人们在移动设备、嵌入式设备上可以享受SQLServer高性能的数据库服务。本文就WinCE嵌入式系统下的SQLCE数据库开发展开讨论,SQLCE功能全面,支持ADO.NETOLE DB Provider For SQLCE ,用VS2005开发工具分别就这两种方式给出开发的概要步骤。

    一、Visual Basic语言ADO.NET开发SQLCE数据库

    VS2005安装好以后,就可以基于Visual Basic语言开发智能设程序了,安装SSCE31SDK-CHS.msi后,在C:Program FilesMicrosoft SQL Server CompactEditionv3.1SDKinwce500下才能找到System.Data.SqlServerCe.dll,这样以后在vb2005中添加对它的引用,才能应用Imports System.Data.SqlServerCe命名空间

    '以下为创建数据库的基本代码:

    Dim conn As NewSqlCeConnection()   '数据库连接以及结果集变量

    DimsqlEngine As NewSqlCeEngine("Data Source = " &path & "time_data.sdf")'path文件路径

       sqlEngine.CreateDatabase()

        Dimcmd As NewSqlCeCommand("CREATE TABLE test_data(data_ID intPrimary Key NOT NULL, temp1 nvarchar(20),temp2 nvarchar(20))",conn)

    conn.Open()

    cmd.ExecuteNonQuery()

    conn.Close()

     

    '向数据库中插入记录:

    Public Sub InsertValues(ByValstr1 As String,ByVal str2 As String)

           Dim cmd As New SqlCeCommand("",conn)

    conn.Open()

            cmd.CommandText= "INSERT INTO test_data(data_ID, temp1, temp2)VALUES (@data_ID,@ temp1,@ temp2)"

    cmd.Parameters.Add("@data_ID", SqlDbType.Int).Value =insert_num

           cmd.Parameters.Add("@temp1",SqlDbType.NVarChar).Value = str1

            cmd.Parameters.Add("@temp2", SqlDbType.NVarChar).Value =str2

           cmd.ExecuteNonQuery()

           conn.Close()

           insert_num = insert_num + 1

         End Sub

     

    cmd.CommandText = "INSERT INTO Phone(data_ID,temp1,temp2) VALUES (0001,'128.6',175.6)"

    cmd.ExecuteNonQuery()     '或者用这两句来完成

    conn.Open()     '修改数据库记录

    Dim cmd As New SqlCeCommand("UPDATE Phone SET Name='Hello', Number='87654321'WHERE Name='abcde' AND Number='12345'", conn)

    cmd.ExecuteNonQuery()

    conn.Close()

     

    conn.Open()     '删除数据库记录

    Dim cmd As New SqlCeCommand("DELETE FROM Phone", conn)

    cmd.ExecuteNonQuery()

    conn.Close()

     

    Dim ds1 As New DataSet()  '读取数据库记录,先将要读的记录做成新表,填充到DataSet类对象中

    Dim selectCmd As SqlCeCommand = conn.CreateCommand()

    selectCmd.CommandText = "SELECT * FROM test_data"

    Dim adp As New SqlCeDataAdapter(selectCmd)' Note: Fill will leave the connection in its originalstate;' In this case, the connection was closed so it will be left closed

    adp.Fill(ds1)

    conn.Close()

     

    If ds1.Tables(0).Rows.Count> 0 Then

               Dim i As Integer

               For i = 0 Tods1.Tables(0).Rows.Count - 2

                   Dim read_temp1 AsSingle =Convert.ToSingle(ds1.Tables(0).Rows(i).Item(1))

                   Dim read_temp2 AsSingle =Convert.ToSingle(ds1.Tables(0).Rows(i).Item(2))

                   i = i + 1      '可以用这样的语句,跳跃读取需要的记录

               Next

    End If

     

    二、Visual C++语言ADO.NET访问SQLCE数据库

    WinCE系统下用C++语言开发SQLCE数据库,用到的是OLEDB编程,但是比较复杂。OLE DB编程是通过COM方式提供一组接口,应用这些接口可以访问SQLCE,主要参考SQLCE3.0 自带的NorthwindOleDb示例。NorthwindOleDb是一个Visual C++ for Devices示例应用程序,它演示了如何使用OLE DB创建SQLServer 2005 Mobile Edition 数据库并与该数据库进行交互,且有图片元素,更多的参考文件1中第九章的内容。

     

    参考文献

    [1] 汪兵.Windows CE 嵌入式高级编程与实例详解(C++实现),[M].中国水利水电出版社,2008

  • 相关阅读:
    求a,b在区间上的公倍数个数
    最长非上升子序列的长度
    uva 11992 线段树
    hdu 5464 dp
    hdu 5465 树状数组
    hdu 5459 递推
    poj 2528 动态线段树
    hdu 4474 bfs
    ural 1495 bfs
    hdu 2795 线段树
  • 原文地址:https://www.cnblogs.com/fozu/p/3616083.html
Copyright © 2020-2023  润新知