我用VS2008 c# df3.5 mobile5.0 开发的一个WINCEwince内可以跟.sdf数据库通信但是需要创建什么样的连接才能让wince跟pc连接上 进行数据通信呢?.sdf 上传到PC端SQL2000里面 及 从SQL2000的数据库里面下载数据到.SDF数据库里面呢?
解决方案 »
- 编写一个窗体遮罩效果,提示:无法在 DLL“user32.dll”中找到名为“SetLayeredWindowattributes”的入口点
- Socket通信问题,接收消息和发送消息
- 小白又来了 求算法 在线等 帮顶给分
- win32 api 中有这样一个函数 MiniDumpWriteDump 在c#中如何调用?
- 在用VC6.0时使用SOAP3.0调用他人写的WebService时结果老是0?
- 为什么我照书上打的C#程序不能调试啊!
- 求助关于"日本商品" 这个词SEO优化如何用文字式的链接在论坛中出现呢
- 关于动态返回页面。
- 视频捕捉,高手指点??
- 错误:不能使用空白的对象或列名。如果必要,请使用一个空格。
- 请教高手关于访问数据库端口问题
- ORA-00942: table or view does not exist
ActiveSync IP直连怎么 弄啊?
能不能教教我啊!我想直接通过SQL语句进行操作!
我就是想把.SDF数据库里面的数据上传到SQL2000里面或者下载到SDF数据库里面!该怎么操作啊?帮个忙!
建立与设备的同步连接。
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一下很多。
用RAPI2 COM封装的好些
1.但是需要创建什么样的连接才能让wince跟pc连接上 进行数据通信呢?
通过无线、蓝牙或底座都可以。
2..sdf 上传到PC端SQL2000里面 及 从SQL2000的数据库里面下载数据到.SDF数据库里面呢?关于.sdf文件的读写比较麻烦。
我当时的做法是将.sdf文件传至PC(无线或底座),PC程序读取.sdf文件中的数据。关于.NET打开并读取.sdf文件数据的方法:点击这里ActiveSync是必须装的,除非不需要底座通信,当然,底座通信的方式最为牢靠,所以说是少不了要装的。
不需要无线的话只能通过底座。通过底座连接后将.sdf文件复制到PC本地,再进行读取处理。1.关于如何通过底座将掌上机中的文件复制到PC上简单点,需要 OpenNETCF.Desktop.Communication.dll ,搜一下多的是,不多说2.关于如何读取.sdf文件中的数据提供一个操作.sdf文件的类,楼下。
* 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
}
}
没见到过可以直接将.sdf文件数据上传至Sql2000或反过来的方法。解决方法为程序读取.sdf文件中的数据,读取完毕后将数据记录写入Sql2000数据库中。
最简单的...
然后用WebSercices/WCF restful参考FortuneBase
参考地址www.cnblogs.com/mail-ricklee