2913|3

73

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

用vb.net连接SQL CE数据库,附源程序和详细错误,请高手解答 [复制链接]

用vb.net写的,连接SQL CE数据库,在PC上发布,pda订阅。定义一个datagrid绑定表,点击一个button显示。

Private cn As New SqlCeConnection("data source=\my documents\SQLCECF.sdf")

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Try
            If Not System.IO.File.Exists("\my documents\SQLCECF.sdf") Then
                Dim en As New SqlCeEngine("data source=\my documents\SQLCECF.sdf")
                en.CreateDatabase() '创建空数据库,用于订阅
                Synch()
            End If
        Catch err As SqlCeException
            ShowErrors(err)
        Catch err As Exception
            MsgBox("There was an error:" & err.ToString())
        End Try
    End Sub

    Sub Synch()
        Try
            Dim rep As SqlCeReplication = New SqlCeReplication
            With rep
                .Publisher = "192.168.0.222"
                .PublisherDatabase = "CFLab"
                .PublisherLogin = "sa"
                .PublisherPassword = "sa"
                .Publication = "CFLab"
                .Subscriber = "SQLCENETCF"
                .SubscriberConnectionString = "Provider=Microsoft.SQLServer.OLEDB.CE.2.0;Data Source=\My Documents\SQLCECF.sdf"
                .InternetUrl = "http://192.168.0.222/SQLCE/sscesa20.dll"
                ' Create the Local SSCE Database subscription
                rep.AddSubscription(AddOption.CreateDatabase)
                rep.Synchronize() '订阅
            End With

        Catch err As SqlCeException
            ShowErrors(err)
        Finally

        End Try
    End Sub

    Public Sub ShowErrors(ByRef e As SqlCeException)

        Dim errorCollection As SqlCeErrorCollection = e.Errors
        Dim bld As System.Text.StringBuilder = New System.Text.StringBuilder
        Dim inner As Exception = e.InnerException

        If Not inner Is Nothing Then
            MessageBox.Show(("Inner Exception:" & inner.ToString()))
        End If

        For Each err As SqlCeError In errorCollection
            bld.Append("/n Error Code: " + err.HResult.ToString("X", System.Globalization.CultureInfo.CurrentCulture))
            bld.Append("/n Message : " + err.Message)
            bld.Append("/n Minor Err.: " + err.NativeError.ToString())
            bld.Append("/n Source : " + err.Source)

            For Each numPar As Int32 In err.NumericErrorParameters

                If 0 <> numPar Then
                    bld.Append("/n Num. Par. : " + numPar.ToString())
                End If

            Next

            For Each errPar As String In err.ErrorParameters

                If String.Empty <> errPar Then
                    bld.Append("/n Err. Par. : " + errPar)
                End If

            Next errPar

            MessageBox.Show(bld.ToString())
            bld.Remove(0, bld.Length)

        Next err
    End Sub

    Private Sub btnShow_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnShow.Click
        connect()

        Dim query As String = "select * from FlightData"
        Dim dap As New SqlCeDataAdapter(query, cn)
        Dim dataset1 As New DataSet
            dap.Fill(dataset1, "FlightData")
            Disconnect()
    End Sub
    Sub connect()
            Synch()
        Try
            cn.Open()
        Catch err As SqlCeException
            ShowErrors(err)
        End Try
    End Sub
    Sub Disconnect()
        Try
            cn.Close()
        Catch err As SqlCeException
            ShowErrors(err)
        End Try
    End Sub

    Private Sub dgdResults_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles dgdResults.Click

    End Sub
End Class

没加排错程序之前总是在fill出问题,加排错程序后,先后遇到这些错误,请高手帮助分析。

1.Error Code:80040E14
Message:There was an error parsing the query.
Token line number,token line offset,token in error

2.Minor Err:25501
Source:Microsoft SQL Server 2000 Windows CE Edition

Error Code:80040E37
Message:The specified table does not exist

3.去掉rep.AddSubscription(AddOption.CreateDatabase)后

Error Code:80072EFD
Message:A request to send data to the computer running IIS has failed.
For more information,see HRESULT.

4.把机器命改成IP地址,错误变成
Error Code:80045058
Message:Initializing SQL Server Reconciler has failed.

Error Code:80045058
Message:进程未能装载“SSCE”的合并复制提供程序。请检查该组建的注册是否正确。



如何解决啊,请高手帮助分析。

最新回复

没遇到过不好意思!!!  详情 回复 发表于 2008-7-16 18:24
点赞 关注

回复
举报

74

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
这么努力的详细写,高手帮助我吧
解决问题立即给分
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
现在以上程序总是运行到Sub btnShow_Click中
当点击show button的时候,连接,同步的时候
调用sub synch的时候出现提示
Error Code:80045058
Message:Initializing SQL Server Reconciler has failed.

Error Code:80045058
Message:进程未能装载“SSCE”的合并复制提供程序。请检查该组件的注册是否正确。

提示组件注册问题?请问组建如何注册呢?
google 百度好像都没有人遇到此问题啊
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

4
 
没遇到过不好意思!!!
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表