wince数据库和mssql区别

1,对于数据库的操作算是入门了,目前为止,微软的数据库基本上都有过接触,wincesql,access,mssql。总的来说,三者大同小异。就是access数据库可能有些语句上和mssql有点差异。

并且access数据库的新建版本不能太高,不然连接数据库时会提示无法识别的版本。我遇到的sql语句差异在于日期格式。

string sql = "select *from code_table where stime between #"+stime+"# and #"+etime+" 23:59:59# ";//access中的sql语句这样写,加#代替'

 2,如下是wince数据库操作类,大致语法如下,下次使用可以简化,用using,不用try...catch。

using System;
using System.IO;
using System.Text;
using System.Data;
using System.Data.SqlServerCe;
using System.Collections;
using System.Windows.Forms;
using System.Data.Common;

namespace cedb
{
    /// <summary>
    /// 数据库操作类
    /// </summary>
    public static class DBSqlServer
    {
      
        /// <summary>
        /// 获取datatable
        /// </summary>
        /// <param name="sql"></param>
        public static DataTable GetDT(string sql)
        {

            SqlCeConnection conn = null;
            try
            {
                conn = new SqlCeConnection("Data Source =\\Application\\3190.sdf");
                try
                {
                    conn.Open();
                }
                catch (Exception ex)
                {
                    throw;
                }
                SqlCeCommand cmd = conn.CreateCommand();
                cmd.CommandText = sql;
                SqlCeDataAdapter ada = new SqlCeDataAdapter(cmd);
                DataTable dts = new DataTable();
                ada.Fill(dts);
                ada.Dispose();
                conn.Close();
                return dts;
            }
            catch
            {
                throw;
            }
            finally
            {
                if (null != conn)
                    conn.Close();
            }
        }

        /// <summary>
        /// 获取ExecuteScalar,即数据中第一行第一列值
        /// </summary>
        /// <param name="sql"></param>
        public static Object GetExecuteScalar(string sql)
        {
             SqlCeConnection conn = null;
        try
        {

            conn = new SqlCeConnection("Data Source =\\Application\\3190.sdf");
            try
            {
                conn.Open();
            }
            catch
            {
                throw new NullReferenceException("连接数据库失败");
            }
            SqlCeCommand cmd = conn.CreateCommand();
            cmd.CommandText = sql;
            return cmd.ExecuteScalar();
         }

          catch (SqlCeException e) 
        {
            throw new NullReferenceException("操作数据库失败");
        }
        finally 
         {
            if(conn.State == ConnectionState.Open)
               conn.Close();
         } 
        }
      
        public static void ExecuteNonQuery(string sql)//执行sql语句,无返回
        {
        SqlCeConnection conn = null;
        try
        {
            conn = new SqlCeConnection("Data Source =\\Application\\3190.sdf");
            try
            {
                conn.Open();
            }
            catch
            {
                throw new NullReferenceException("连接数据库失败");
            }
            SqlCeCommand cmd = conn.CreateCommand();
            cmd.CommandText = sql;
            cmd.ExecuteNonQuery();
         }

          catch (SqlCeException e) 
        {
            throw new NullReferenceException("操作数据库失败");
        }
        finally 
         {
            if(conn.State == ConnectionState.Open)
               conn.Close();
         }
        }
    }
}

 

posted @ 2015-08-07 10:13  BetterCoder  阅读(191)  评论(0编辑  收藏  举报