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版

WINCE平台安装sqlCE

 

    通过database prperties可以设定密码。

WINCE平台安装sqlCE

    通过如上视图还可以创建表,检索表等操作,不再啰嗦。

3,开发程序

    直接贴代码了,从代码里找需要的内容吧,别忘了加入包名,否则是找不到类的,在reference里加入也是可以的。还有就是wince里数据库的路径是绝对路径。

  1. using System;
  2. using System.Data.SqlServerCe;
  3. using System.Collections.Generic;
  4. using System.Text;
  5. using System.Data;
  6. namespace aaa
  7. {
  8. public class Connection
  9. {
  10. //local
  11. //private const string dataSource="C:/AppDatabase1.sdf";
  12. //screen
  13. private const string dataSource = "/ResidentFlash/AppDatabase1.sdf";
  14. private const string password = "password";
  15. protected SqlCeConnection _Connection = ;
  16. /**
  17. * 打开连接
  18. *
  19. */
  20. protected Boolean createConnection()
  21. {
  22. //连接sql server Mobile数据库的连接字符串
  23. string _LocalConnectionString = "Data Source=" + dataSource
  1. + ";Persist Security Info=True;password=" + password + ";";
  2. _Connection = new SqlCeConnection(_LocalConnectionString);
  3. try
  4. {
  5. //打开连接
  6. _Connection.Open();
  7. return true;
  8. }
  9. catch (Exception e)
  10. {
  11. Console.Out.WriteLine(e.StackTrace);
  12. return false;
  13. }
  14. }
  15. /**
  16. *关闭连接
  17. */
  18. protected Boolean closeConnection()
  19. {
  20. if (_Connection.State == ConnectionState.Open)
  21. _Connection.Close();
  22. return true;
  23. }
  24. /**
  25. * 数据执行
  26. */
  27. public int executeNonQuery(string sqlstr)
  28. {
  29. //如果创建连接成功
  30. if (createConnection())
  31. {
  32. try
  33. {
  34. //执行
  35. SqlCeCommand cmd = _Connection.CreateCommand();
  36. cmd.CommandText = sqlstr;
  37. cmd.ExecuteNonQuery();
  38. return 1;
  39. }
  40. catch (Exception e)
  41. {
  42. //异常
  43. Console.Out.WriteLine(e.StackTrace);
  44. return 0;
  45. }
  46. finally
  47. {
  48. //关闭连接
  49. closeConnection();
  50. }
  51. }
  52. return 0;
  53. }
  54. /**
  55. * 检索数据条数
  56. */
  57. public int selectCount(string sqlstr)
  58. {
  59. //如果创建连接成功
  60. if (createConnection())
  61. {
  62. try
  63. {
  64. //执行
  65. SqlCeCommand cmd = _Connection.CreateCommand();
  66. cmd.CommandText = sqlstr;
  67. SqlCeDataReader rdr = cmd.ExecuteReader();
  68. rdr.Read();
  69. return rdr.GetInt32(0);
  70. }
  71. catch (Exception e)
  72. {
  73. //异常
  74. Console.Out.WriteLine(e.StackTrace);
  75. return 0;
  76. }
  77. finally
  78. {
  79. //关闭连接
  80. closeConnection();
  81. }
  82. }
  83. return 0;
  84. }
  85. }
  86. }