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(); } } } }