none
VB2005要開發於Tablet PC上的問題 RRS feed

  • 問題

  • 請問要用VB2005開發Tablet PC系統是要使用Windows專案還是行動裝置專案??

    我在Tablet PC(UMPC)中有要用SQL SERVER compact edition

    若是用WINDOWS專案  可以讀取.SDF的資料庫檔案嗎

     

    謝謝

     

    這方面的資訊好像不是很多耶  請問有哪裡資料較多嗎  謝謝

    2008年1月29日 上午 09:33

解答

  • Hi,

    我這邊是可以正常的連接到sdf資料庫檔案;原本我沒有裝Tablet PC SDK,我去找了V1.7來安裝測試,結果一樣是可以的,您要不要試試看重新安裝你的sql compact 執行環境相關的東西看看。

    2008年2月1日 上午 03:32
    版主

所有回覆

  • Hi,

    請參考看看下面連結相關章節

    建立 Tablet PC 專用的 SQL Server Compact Edition 應用程式

    http://msdn2.microsoft.com/zh-tw/library/ms173298.aspx

     

    2008年1月29日 上午 10:32
    版主
  • Hi~!  謝謝

    這一篇我已經有看過了  也試過可以動作

    可是裡面只有建立SDF的動作

    可是說明裡面都沒寫到關於連接SDF資料庫並做資料庫修改的範例

    我之前有做過PDA連SDF資料庫並修改  也都OK

    可是之前是使用MOBILE的專案所以可以部署在PDA上執行

    可是現在建立的是WINDOWS應用程式專案

    所以不知道如何連接SDF的資料庫

    也不太清楚是否可以直接部署在UMPC上還是是要用隨身碟將.EXE檔拉至UMPC上再執行?

     

    謝謝

    2008年1月30日 上午 07:11
  • Hi,

    上面提到的連結左邊列表有一堆相關資料可以參考,你可以翻翻看;另外根據"概觀"中的說明提到

    http://msdn2.microsoft.com/zh-tw/library/ms171986.aspx

    部分原文
    資料庫概觀 (SQL Server Compact Edition)

    您可以在裝置上或桌上型電腦上建立或連接到 Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) 資料庫。

    SQL Server Compact Edition 資料庫會儲存在具有 .sdf 副檔名的檔案中。此檔案含有資料庫的完整內容,而且最大可以到 4 GB。SQL Server Compact Edition 可以在智慧型裝置和 Tablet PC 上存取及修改資料庫檔案。只要利用 SQL Server Management Studio 及其他工具,它也支援在桌上型電腦上使用。

     

     

    部屬的部分可以參考下面這篇

    http://msdn2.microsoft.com/zh-tw/library/ms174619.aspx

    部分原文
    部署桌上型及 Tablet PC 應用程式

    為桌上型及 Tablet PC 開發的應用程式,其安裝方式就像安裝其他 Microsoft Windows 應用程式一樣。若要安裝 Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) 及應用程式,則必須在桌上型電腦與 Tablet PC 電腦中執行 SQL Server Compact Edition 安裝程式 (SQLServerEv31-EN.msi)。執行安裝程式以安裝 SQL Server Compact Edition 會註冊原生 DLL,並將 Managed 組件放在「全域組件快取」中。這將可確保在 Tablet PC 上的 SQL Server Compact Edition 安裝,在未來可由 Microsoft 更新或類似的技術來服務。

     

    或是

    HOW TO:連同應用程式部署 SQL Server Compact Edition 資料庫

    2008年1月30日 上午 07:24
    版主
  • 非常感謝bauann 的回答

    謝謝您

     

    你提供的資料我於MSDN中都有看到了

    可是我看了以後還是不知道怎麼動手做

    因為文件中好像都沒有什麼資料是針對TABLET PC做說明的

    都只有提一下而已 大部分都是使用在智慧型裝置(PDA OR SMARTPHONE)

    所以一直不知道如何下手

    請問您有實際做過這方面的東西過嗎  可以提供一下如何開始嗎

     

    還是請問若COMPACT不行  那假如我改用ACCESS當作UMPC端的資料庫用

    那我之後要與SERVER上的資料庫作發行複寫的動作會很難用嗎

     

    謝謝

    2008年1月30日 上午 08:07
  • Hi,

    我是有安裝compact edition的SDK,並且安裝Compact edition的環境;如果你有裝SDK會在下面位置找到範例資料庫

    C:\Program Files\Microsoft SQL Server Compact Edition\v3.1\SDK\Samples

    我新增一個WIndows應用程式,之後加入SqlServerCE的參考,並且把範例資料庫加到專案中,之後畫面上拉出一個DataGridView,測試的程式碼像下面這樣

    Code Snippet

    Imports System.Data.SqlServerCe

    Public Class Form1

        Dim conn As New SqlServerCe.SqlCeConnection(My.Settings.NorthwindConnectionString)
        Dim DA As New SqlServerCe.SqlCeDataAdapter("Select * from Products", conn)
        Dim DS As New DataSet

        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            DA.Fill(DS, "Products")
            DataGridView1.DataSource = DS
            DataGridView1.DataMember = "Products"
        End Sub
    End Class

     

     

    我覺得用法跟一般的是一樣的只是引用的命名空間不同,而在appconfig中的連線字串是長這樣

    Code Snippet

    <connectionStrings>
            <add name="WindowsApplication1.My.MySettings.NorthwindConnectionString"
                connectionString="Data Source =&quot;|DataDirectory|\Northwind.sdf&quot;"
                providerName="Microsoft.SqlServerCe.Client" />
        </connectionStrings>

     

    更多相關資料可以到下面參考

    http://msdn2.microsoft.com/zh-tw/library/system.data.sqlserverce(VS.80).aspx

    2008年1月30日 上午 08:32
    版主
  • Imports System.Data.SqlServerCe

    Imports Microsoft.Ink

     

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Try

                Dim con As SqlCeConnection
                Dim cmd As New SqlCeCommand
                Dim da As New SqlCeDataAdapter

      con = New SqlCeConnection("Datat source=\Northwind.sdf")
      con.Open()

      da = New SqlServerCe.SqlCeDataAdapter
      da.SelectCommand = New SqlServerCe.SqlCeCommand("select * from employees", con)
      da.Fill(dataem, "Employees")
      Dim dtem As DataTable = dataem.Tables("Employees")
      DataGridView1.DataSource = dtem

      con.Close()

     End Sub

    End Class

     

    我在WINDOWS應用程式專案中寫上面的程式

    執行時  出現第一個可能發生的例外狀況類型 'System.ArgumentException' 發生於 System.Data.SqlServerCe.dll
    的問題  在con = New SqlCeConnection("Datat source=\Northwind.sdf")這一行有問題

    2008年1月30日 上午 09:05
  • Hi,

    把連線字串改成這樣測試看看

    Dim conn As New SqlServerCe.SqlCeConnection("Data Source =Northwind.sdf")

     

    2008年1月30日 下午 12:37
    版主
  •  

    HI 還是不行耶??
    2008年1月31日 上午 10:38
  • Hi,

    錯誤是發生在哪一個步驟?你可以用單步執行去跑跑看確認錯誤發生的原因。

     

    2008年1月31日 下午 12:34
    版主
  • HI~! 謝謝

    我使用單部執行時執行到

    Try

    .....

    con = New SqlCeConnection("Datat source=Northwind.sdf")

     

    時就會跳到

    catch這一行  然後就出現

    第一個可能發生的例外狀況類型 'System.ArgumentException' 發生於 System.Data.SqlServerCe.dll

    這行
    2008年1月31日 下午 12:44
  • Hi,

    我模擬你的程式碼動作下去跑,是不會發生你提到的錯誤情形,你的SqlSercerCE.dll的檔案版本是..?我這邊是3.0.5300.0

     

    2008年1月31日 下午 01:10
    版主
  •  

    HI 謝謝

    我的也是3.0.53的耶

     

    請問一下您執行的動作

    我是直接在開發的桌上型電腦上按VB上的開始偵錯鈕

    我有加入Microsoft Tablet PC API的參考

     

    請問您也是這樣嗎

     

    您跑程式時可以連接到sdf的資料庫嗎?

     

    THX

    2008年1月31日 下午 02:44
  • Hi,

    我這邊是可以正常的連接到sdf資料庫檔案;原本我沒有裝Tablet PC SDK,我去找了V1.7來安裝測試,結果一樣是可以的,您要不要試試看重新安裝你的sql compact 執行環境相關的東西看看。

    2008年2月1日 上午 03:32
    版主
  • Hi,

    有找了一些資料,如果你有裝線上手冊,可以看一下這邊

    ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.cht/cpref4/html/P_System_Data_SqlServerCe_SqlCeConnection_ConnectionString.htm

     

    從錯誤訊息看起來是連接字串有問題,因為我這邊測不出來你的情形,有幾個部分可以測看看

    連接字串改成下面這樣

    conn = New Data.SqlServerCe.SqlCeConnection("Data Source =AppDatabase1.sdf;")

    或是用完整的路徑看看

    conn = New Data.SqlServerCe.SqlCeConnection("Data Source =\Program Files\DeviceApplication1\AppDatabase1.sdf;")

    2008年2月1日 上午 05:43
    版主
  •  

    HI~! THX

     

    非常感謝您

    可是我照您的程式重新開一個新專案再試一次也試一樣

     

    可不可以請您看一下我的專案 看看在您那裡可不可以執行(內容和您POST的一樣)

    http://140.124.42.70/bauann.htm

     

    我原本也是沒安裝SDK 1.7  可是裝了以後也是一樣

     

    我在開發的電腦上有安裝

    Tablet PC Platform Software Development Kit (SDK) v1.7.exe

    SQLServerCE31-EN.msi

     

    這兩樣

     

    謝謝

    2008年2月1日 上午 09:30
  • Hi,

    我看過你的專案了 ~ 長官..字打錯了...

    conn = New SqlServerCe.SqlCeConnection("Datat source=Northwind.sdf")

    是Data Source,多了一個"t",還有"\"不能加,加了的話他會跑到根目錄去找檔案(也就是C:\),會找不到檔案 ~

    您修改之後測試看看吧 ~

    2008年2月1日 上午 09:51
    版主
  •  

    天ㄚ~~~~~~~~~~~~~~~~~~

    竟然..是字打錯了   

    真的非常抱歉~~!  我修改後已經可以正常動作了

    非常非常感謝您

     

    謝謝

     

    也祝您新年快樂喔

    可以了之後 接下來還有很多東西要用

    希望之後還可以請問您喔

     

    謝了

    2008年2月1日 上午 09:59
  • 改天要請吃飯了你...呵呵呵~

    大家一起研究吧,互相交流 ~

    2008年2月1日 上午 10:06
    版主