嵌入式數(shù)據(jù)庫(kù)Sqlce讀取數(shù)據(jù)過(guò)程簡(jiǎn)介
用于嵌入式設(shè)備開(kāi)發(fā)的數(shù)據(jù)庫(kù)Sqlce的數(shù)據(jù)讀取過(guò)程與用于電腦上的sql的讀取過(guò)程是相似的,都是經(jīng)過(guò)以下幾步:
1、建立數(shù)據(jù)連接;
2、對(duì)數(shù)據(jù)進(jìn)行查詢得到結(jié)果集;
3、讀取結(jié)果集進(jìn)行數(shù)據(jù)處理。
Sqlce是通過(guò)SqlCeConnection建立一個(gè)本地文件的SQLCE連接,在建立數(shù)據(jù)庫(kù)連接成功以后,通過(guò)SqlCeConnection建立SqlCeCommand對(duì)象,通過(guò)向SqlCeCommand賦予sql語(yǔ)句實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)記錄的查詢。在這里一般采用的兩種數(shù)據(jù)記錄集讀取方式:SqlCeDataReader和SqlCeDataAdapter。
在下文程序中,我將分別進(jìn)行描述。
建立數(shù)據(jù)庫(kù)連接:
- cn = New SqlCeConnection("Data Source=\My Documents\hycrm.sdf")
cn.Open()‘根據(jù)查詢得到的記錄集進(jìn)行逐條的處理分析。
在這種情況下一般采用SqlCeDataReader進(jìn)行數(shù)據(jù)讀?。?/p>
- Try Dim cmd As SqlCeCommand = cn.CreateCommand
- cmd.CommandText = "select CreateDate from CorporationInfo group by CreateDate order by CreateDate"
- Dim reader As SqlCeDataReader
- reader = cmd.ExecuteReader
- Do While reader.Read
- If Trim(Str(Year(reader.Item("CreateDate")))) <> m_szYear Then
- TempStr = Trim(Str(Year(reader.Item("CreateDate")))) + "年度備案表"
- nodX = node.Nodes.Add(TempStr) SearchZh(Trim(Str(Year(reader.Item("CreateDate")))), nodX)
- m_szYear = Trim(Str(Year(reader.Item("CreateDate"))))
- End If
- Loop
- reader.Close()
- Catch sqlex As SqlCeException
- Dim sqlError As SqlCeError For Each sqlError In sqlex.Errors
- MessageBox.Show(sqlError.Message)
- Next Catch ex As Exception
- MessageBox.Show(ex.Message)
- Finally
- End Try‘
當(dāng)需要將查詢得到的記錄集在DateGrid上進(jìn)行顯示的時(shí)候,就需要使用SqlCeDataAdapter對(duì)數(shù)據(jù)進(jìn)行批量讀取,程序如下:
- Dim sqlstr As String
- Dim cmd As New SqlCeCommand
- Dim ds As New Data
- Set 'cn = New SqlCeConnection("\My Documents\hycrm.sdf")
- 'cn.Open() sqlstr = "select * from CorporationInfo”
- cmd = cn.CreateCommand
- cmd.CommandText = sqlstr Dim da As New SqlCeDataAdapter(cmd)
- da.Fill(ds)
Sqlce讀取數(shù)據(jù)的過(guò)程就介紹到這里,謝謝大家!
【編輯推薦】