我用VS2008 c# df3.5 mobile5.0 开发的一个WINCEwince内可以跟.sdf数据库通信但是需要创建什么样的连接才能让wince跟pc连接上 进行数据通信呢?.sdf 上传到PC端SQL2000里面 及 从SQL2000的数据库里面下载数据到.SDF数据库里面呢?

解决方案 »

  1.   

    只有ActiveSync、Socket、Http三种通信方式...跟.sdf数据库那不叫通信,只是读取本地文件而已...
      

  2.   

    我这里没有无线!所以不想通过无线!
    ActiveSync  IP直连怎么 弄啊?
    能不能教教我啊!我想直接通过SQL语句进行操作!
      

  3.   


    我就是想把.SDF数据库里面的数据上传到SQL2000里面或者下载到SDF数据库里面!该怎么操作啊?帮个忙!
      

  4.   

    Connect
    建立与设备的同步连接。
    CopyFileFromDevice
    将设备中的文件复制到 PC。
    CopyFileOnDevice
    将设备某个位置的文件复制到设备的另一新位置。
    CopyFileToDevice
    将 PC 中的文件复制到设备。
    CreateDeviceDirectory
    在设备中创建目录。
    CreateProcess
    启动设备中的应用程序。
    DeleteDeviceFile
    删除设备中的文件。
    DeviceFileExists
    检查设备中是否存在文件。
    Disconnect
    中断与设备的连接。
    EnumFiles
    提供与 FileName 参数提供的条件相匹配的 FileInformation 类数组列表。
    GetDeviceCapabilities
    检索设备的特定设备信息。
    GetDeviceFileAttributes
    检索特定设备文件的属性。
    GetDeviceFileSize
    检索设备文件的大小,以字节为单位。
    GetDeviceFileTime
    检索设备文件的日期时间。
    GetDeviceMemoryStatus
    检索设备的内存使用信息。
    GetDeviceSystemFolderPath
    检索到设备系统文件夹的路径。
    GetDeviceSystemInfo
    检索设备的系统详细信息。
    GetDeviceSystemPowerStatus
    检索设备的电源状态。
    GetDeviceVersion
    检索设备的操作系统版本。
    MoveDeviceFile
    将现有设备文件移到或重命名到一个新位置。
    RemoveDeviceDirectory
    删除设备中的目录。
    SetDeviceFileAttributes
    设置设备中文件的属性。
    SetDeviceFileTime
    设置设备中文件的日期时间。
    http://msdn.microsoft.com/zh-cn/library/ms837846.aspx
    Google一下很多。
      

  5.   

    你查下MSDN rapi function就应该能找到
    用RAPI2 COM封装的好些
      

  6.   

    那些用Ce开头的函数 大多数都上RAPI FUNCTION
      

  7.   

    做个webservice 就能 数据互通了
      

  8.   


    1.但是需要创建什么样的连接才能让wince跟pc连接上 进行数据通信呢?
    通过无线、蓝牙或底座都可以。
    2..sdf 上传到PC端SQL2000里面 及 从SQL2000的数据库里面下载数据到.SDF数据库里面呢?关于.sdf文件的读写比较麻烦。
    我当时的做法是将.sdf文件传至PC(无线或底座),PC程序读取.sdf文件中的数据。关于.NET打开并读取.sdf文件数据的方法:点击这里ActiveSync是必须装的,除非不需要底座通信,当然,底座通信的方式最为牢靠,所以说是少不了要装的。
      

  9.   

    做windowsCE开发,ActiveSync是必须安装的,在模拟器中设置一下网络,就可以跟pc通讯了
      

  10.   


    不需要无线的话只能通过底座。通过底座连接后将.sdf文件复制到PC本地,再进行读取处理。1.关于如何通过底座将掌上机中的文件复制到PC上简单点,需要 OpenNETCF.Desktop.Communication.dll ,搜一下多的是,不多说2.关于如何读取.sdf文件中的数据提供一个操作.sdf文件的类,楼下。
      

  11.   

    /*********************************************************
     * guog2009-08-25 Create
     * 功能,操作sdf文件
     * 
     * 注意,需要添加对System.Data.SqlServerCe.dll的引用
     * 且必须复制以下文件在同一文件夹
     * sqlceca30.dll,sqlcecompact30.dll,sqlceer30cn.dll
     * sqlceme30.dll,sqlceoledb30.dll
     * sqlsqlceme30.dll,sqlceqp30.dll,sqlcese30.dll
     * 
     * 使用的例子:
     * SqlCeOperator _sqlCe = new SqlCeOperator();
     * _sqlCe.ConnectionString = String.Format("DataSource = {0};Encrypt=True ;pwd = {1}", "MisDb.sdf", "");
     * _sqlCe.Connect();
     * string _sql = "SELECT * FROM BStore";
     * DataSet _ds = new DataSet();
     * _sqlCe.PopulateDataTable(_ds, _sql);
     * this.dataGridView2.DataSource = _ds.Tables[0].DefaultView;
     * _sqlCe.Disconnect();
    *********************************************************/using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Data.SqlServerCe;
    using System.Data;namespace YXSoft.DBHelp
    {
        /// <summary>
        /// 操作SDF文件的类
        /// 使用的例子
        /// SqlCeOperator _sqlCe = new SqlCeOperator();
        /// _sqlCe.ConnectionString = String.Format("DataSource = {0};Encrypt=True ;pwd = {1}", "MisDb.sdf", "");
        /// _sqlCe.Connect();
        /// string _sql = "SELECT * FROM BStore";
        /// DataSet _ds = new DataSet();
        /// _sqlCe.PopulateDataTable(_ds, _sql);
        /// this.dataGridView2.DataSource = _ds.Tables[0].DefaultView;
        /// _sqlCe.Disconnect();
        /// </summary>
        public class SqlCeOperator
        {
            #region---Class Members---
            SqlCeConnection _Connection;
            SqlCeCommand _Command;
            #endregion        #region ---Constructor---
            public SqlCeOperator()
            {
                _Connection = new SqlCeConnection();
                _Command = (SqlCeCommand)this.NewCommand();
            }
            #endregion        #region ---Methods---
            public IDbConnection Connection
            {
                get { return _Connection; }
            }        public IDbDataAdapter CreateAdapter(string SelectCommand)
            {
                return new SqlCeDataAdapter(SelectCommand, (SqlCeConnection)this.Connection);
            }        /// <summary>
            /// 获取或设置连接字符串
            /// 格式请确保为"DataSource = {0};Encrypt=True ;pwd = {1}"
            /// </summary>
            public string ConnectionString
            {
                get { return _Connection.ConnectionString; }
                set { _Connection.ConnectionString = value; }
            }
            public void Connect()
            {
                _Connection.Open();
            }
            public void Connect(string ConnectionString)
            {
                this.ConnectionString = ConnectionString;
                _Connection.Open();
            }
            public void Disconnect()
            {
                _Connection.Close();
            }
            public void ReConnect()
            {
                _Connection.Close();
                _Connection.Open();
            }
            public void BeginTran()
            {
                NewCommand("begin tran").ExecuteNonQuery();
            }
            public void CommitTran()
            {
                NewCommand("commit tran").ExecuteNonQuery();
            }
            public void RollBack()
            {
                NewCommand("rollback").ExecuteNonQuery();
            }
            public void PopulateDataTable(DataTable DataTable, string Select)
            {
                PopulateDataTable(DataTable, NewCommand(Select));
            }
            public void PopulateDataTable(DataSet DataSet, string Select)
            {
                PopulateDataTable(DataSet, NewCommand(Select));
            }
            public void PopulateDataTable(DataSet DataSet, IDbCommand Select)
            {
                SqlCeDataAdapter Adp = new SqlCeDataAdapter((SqlCeCommand)Select);
                Adp.Fill(DataSet);
            }
            public void PopulateDataTable(DataTable DataTable, IDbCommand Select)
            {
                SqlCeDataAdapter Adp = new SqlCeDataAdapter((SqlCeCommand)Select);
                Adp.Fill(DataTable);
            }
            public IDbCommand NewCommand()
            {
                return NewCommand("");
            }
            public IDbCommand NewCommand(string Command)
            {
                return new SqlCeCommand(Command, this._Connection);
            }
            public int ExecuteNonQuery(IDbCommand Command)
            {
                return Command.ExecuteNonQuery();
            }
            public object ExecuteScalar(IDbCommand Command)
            {
                return Command.ExecuteScalar();
            }
            public void SetAdaptertInsertCommand(string Query, IDataAdapter Adapter)
            {
                ((SqlCeDataAdapter)Adapter).InsertCommand = (SqlCeCommand)NewCommand(Query);
            }
            public void SetAdaptertUpdateCommand(string Query, IDataAdapter Adapter)
            {
                ((SqlCeDataAdapter)Adapter).UpdateCommand = (SqlCeCommand)NewCommand(Query);
            }
            public void SetAdaptertDeleteCommand(string Query, IDataAdapter Adapter)
            {
                ((SqlCeDataAdapter)Adapter).DeleteCommand = (SqlCeCommand)NewCommand(Query);
            }
            public void SetAdaptertInsertCommand(IDbCommand Query, IDataAdapter Adapter)
            {
                ((SqlCeDataAdapter)Adapter).InsertCommand = (SqlCeCommand)Query;
            }
            public void SetAdaptertUpdateCommand(IDbCommand Query, IDataAdapter Adapter)
            {
                ((SqlCeDataAdapter)Adapter).UpdateCommand = (SqlCeCommand)Query;
            }
            public void SetAdaptertDeleteCommand(IDbCommand Query, IDataAdapter Adapter)
            {
                ((SqlCeDataAdapter)Adapter).DeleteCommand = (SqlCeCommand)Query;
            }
            public IDbCommand GenerateInsertCommand(IDataAdapter Adapter)
            {
                SqlCeCommandBuilder builder = new SqlCeCommandBuilder((SqlCeDataAdapter)Adapter);
                return builder.GetInsertCommand(false);
            }
            public IDbCommand GenerateUpdateCommand(IDataAdapter Adapter)
            {
                SqlCeCommandBuilder builder = new SqlCeCommandBuilder((SqlCeDataAdapter)Adapter);
                return builder.GetUpdateCommand(false);
            }
            public IDbCommand GenerateDeleteCommand(IDataAdapter Adapter)
            {
                SqlCeCommandBuilder builder = new SqlCeCommandBuilder((SqlCeDataAdapter)Adapter);
                return builder.GetDeleteCommand(false);
            }
            public void UpdateAdapter(DataTable Table, IDataAdapter Adapter)
            {
                ((SqlCeDataAdapter)Adapter).Update(Table);
            }
            public void UpdateAdapter(DataSet DataSet, IDataAdapter Adapter)
            {
                ((SqlCeDataAdapter)Adapter).Update(DataSet);
            }
            #endregion
        }
    }
      

  12.   


    没见到过可以直接将.sdf文件数据上传至Sql2000或反过来的方法。解决方法为程序读取.sdf文件中的数据,读取完毕后将数据记录写入Sql2000数据库中。
      

  13.   

    WIFI
    最简单的...
    然后用WebSercices/WCF restful参考FortuneBase
    参考地址www.cnblogs.com/mail-ricklee