c#开发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旧了,我找了很久,最后还是在咱csdn找到个能用的。

    http://download.csdn.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 = null;

        /**
         * 打开连接
         * 
         */
        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;
        }
    }
}


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值