WINCE平台安装sqlCE
第一次做c#开发,也是第一次做嵌入式开发,为了使用数据库,找了好多的资料。可能是现在大多是安卓开发了吧,资料不多,而且大部分资料都狠重点,看不出数据库怎么配的。弄了1天,总算弄好了。其实还是很简单的。
我使用的是vs2008开发,语言是C#,网上有很多推荐的wince的数据库,但是我最终选定了sqlce,主要原因是找到一份sqlce较完整的安装说明,次要原因在于我本地正好有sqlserver。
1,wince安装数据库驱动
拷贝\Microsoft SQL Server Compact Edition\v3.5\Devices\wce500\armv4i目录下的sqlce.wce5.armv4i,sqlce.repl.wce5.armv4i,sqlce.dev.ENU.wce5.armv4i到wince根目录,然后在wince顺次双击安装,一路回车即可。
两点说明:1,一定要顺次,因为第一个是驱动,后面两个好像都是工具,顺序错了重新安装一次即可。
2,据说有些平板在重启后需要重新安装,所以要烧进系统,我没遇到,我也不会,所以需要的朋友再去找其他资料。
2,VS2008建立数据库
在项目中增加数据库文件。这里还需要说一句,如果加入数据库时报错了,那是dll旧了,我找了很久,最后还是在咱****找到个能用的。
http://download.****.net/detail/friendan/4807206,要用9.0.30729.1版
通过database prperties可以设定密码。
通过如上视图还可以创建表,检索表等操作,不再啰嗦。
3,开发程序
直接贴代码了,从代码里找需要的内容吧,别忘了加入包名,否则是找不到类的,在reference里加入也是可以的。还有就是wince里数据库的路径是绝对路径。
-
using System;
-
using System.Data.SqlServerCe;
-
using System.Collections.Generic;
-
using System.Text;
-
using System.Data;
-
-
namespace aaa
-
{
-
public class Connection
-
{
-
//local
-
//private const string dataSource="C:/AppDatabase1.sdf";
-
//screen
-
private const string dataSource = "/ResidentFlash/AppDatabase1.sdf";
-
-
private const string password = "password";
-
-
protected SqlCeConnection _Connection = ;
-
-
/**
-
* 打开连接
-
*
-
*/
-
protected Boolean createConnection()
-
{
-
//连接sql server Mobile数据库的连接字符串
-
string _LocalConnectionString = "Data Source=" + dataSource
-
+ ";Persist Security Info=True;password=" + password + ";";
-
_Connection = new SqlCeConnection(_LocalConnectionString);
-
-
try
-
{
-
//打开连接
-
_Connection.Open();
-
-
return true;
-
}
-
catch (Exception e)
-
{
-
Console.Out.WriteLine(e.StackTrace);
-
return false;
-
}
-
}
-
/**
-
*关闭连接
-
*/
-
protected Boolean closeConnection()
-
{
-
if (_Connection.State == ConnectionState.Open)
-
_Connection.Close();
-
return true;
-
}
-
-
/**
-
* 数据执行
-
*/
-
public int executeNonQuery(string sqlstr)
-
{
-
//如果创建连接成功
-
if (createConnection())
-
{
-
try
-
{
-
//执行
-
SqlCeCommand cmd = _Connection.CreateCommand();
-
cmd.CommandText = sqlstr;
-
cmd.ExecuteNonQuery();
-
return 1;
-
-
}
-
catch (Exception e)
-
{
-
//异常
-
Console.Out.WriteLine(e.StackTrace);
-
return 0;
-
}
-
finally
-
{
-
//关闭连接
-
closeConnection();
-
}
-
}
-
return 0;
-
}
-
-
/**
-
* 检索数据条数
-
*/
-
public int selectCount(string sqlstr)
-
{
-
-
//如果创建连接成功
-
if (createConnection())
-
{
-
try
-
{
-
//执行
-
SqlCeCommand cmd = _Connection.CreateCommand();
-
cmd.CommandText = sqlstr;
-
SqlCeDataReader rdr = cmd.ExecuteReader();
-
rdr.Read();
-
return rdr.GetInt32(0);
-
-
}
-
catch (Exception e)
-
{
-
//异常
-
Console.Out.WriteLine(e.StackTrace);
-
return 0;
-
}
-
finally
-
{
-
//关闭连接
-
closeConnection();
-
}
-
}
-
return 0;
-
}
-
}
-
}