| 
			
		 | 
		
			
				
	
		
			
 			Posted on 
 2007-05-02 18:07 
Q/chen 
阅读( 1935) 
评论() 
 
 收藏 
举报
			
		 
		
  
 using System;
  using System.Data;
  using System.Data.SqlServerCe;
  using System.Data.Common;
 ![]() 
  namespace Foundation
 ![]() ![]()  {
 ![]()      /**//// <summary>
      /// 本类为:SQLCE数据库的一些基本操作。在使用前,先将数据库的连接字符串确认好,然后使用;
      /// 本类目的为了方便大家更好的使用SQLCE数据库;
      /// 本类为开源代码;
      /// 有使用本类所产生的一切后果由使用者自负
      /// </summary>
      public class DataBase
 ![]()       {
          private String Server, dbName, UID, Password;
          private String SqlCeConnectionString;
          private SqlCeConnection con;        
 ![]() 
          public DataBase()
 ![]()           {
              // 初始化数据库连接字符串
              Server = "Input Correct string!";
              dbName = "Input Correct string!";
              UID = "Input Correct string!";
              Password = "Input Correct string!";
              SqlCeConnectionString = "user id=" + UID + ";password=" + Password + ";initial catalog=" + dbName + ";data source=" + Server + ";Connect Timeout=30";
          }
 ![]()          /**//// <summary>
          /// 打开数据库连接。
          /// </summary>
          private void Open() 
 ![]()           {
              if (con == null) 
 ![]()               {
                  con = new SqlCeConnection(SqlCeConnectionString);
                  con.Open();
              }
          }
 ![]() 
 ![]()          /**//// <summary>
          /// 关闭数据库连接。
          /// </summary>
          public void Close() 
 ![]()           {
              if (con != null)
 ![]()               {
                  con.Close();
                  this.Dispose();
              }    
          }
 ![]() 
 ![]()          /**//// <summary>
          /// Release resources.
          /// 释放资源。
          /// </summary>
          public void Dispose() 
 ![]()           {
              // make sure connection is closed
              if (con != null) 
 ![]()               {
                  con.Dispose();
                  con = null;
              }                
          }
 ![]() 
 ![]()          /**//// <summary>
          /// 测试数据库连接是否成功
          /// </summary>
          /// <param name="server">server</param>
          /// <param name="database">database</param>
          /// <param name="uid">用户名</param>
          /// <param name="password">密码</param>
          /// <returns>bool</returns>
          public bool TestConnection(string server, string database, string uid, string password)
 ![]()           {
              try
 ![]()               {    
                  con = null;
                  SqlCeConnectionString = "user id=" + uid + ";password=" + password + ";initial catalog=" + database + ";data source=" + server + " ";
                  this.Open();
              }
              catch
 ![]()               {                
                  return false;
              }
              return true;
          }
 ![]() 
 ![]()          /**//// <summary>
          /// 创建command对象以便执行SqlCe语句。
          /// </summary>
          /// <param name="SqlCe">SqlCe Text.</param>        
          /// <returns>Command object.</returns>
          private SqlCeCommand CreateCommand(string SqlCe) 
 ![]()           {
              // make sure connection is open
              Open();
              SqlCeCommand cmd = new SqlCeCommand(SqlCe, con);
              cmd.CommandType = CommandType.Text;
              return cmd;
          }
 ![]() 
 ![]()          /**//// <summary>
          /// 创建带Prameters的Command对象
          /// </summary>
          /// <param name="SqlCeCe">SqlCe语句</param>
          /// <param name="prams">SqlCeParameters参数</param>
          /// <returns>Command对象</returns>
          public SqlCeCommand CreateCommand(String SqlCe, SqlCeParameter[] prams)
 ![]()           {
              Open();
              SqlCeCommand cmd = new SqlCeCommand(SqlCe,con);
              cmd.CommandType = CommandType.Text;
              cmd.Parameters.Clear();            
              if (prams != null)
 ![]()               {
                  foreach (SqlCeParameter parameter in prams)
                      cmd.Parameters.Add(parameter);
              }
              return cmd;
          }
 ![]() 
 ![]()          /**//// <summary>
          /// 执行一个无返回的SqlCe语句
          /// </summary>                
          /// <param name="SqlCe">SqlCe语句</param>
          /// <returns>执行结果</returns>
          public bool QueryExec(string SqlCe)
 ![]()           {                
              SqlCeCommand cmd = CreateCommand(SqlCe);
              try
 ![]()               {                
                  cmd.ExecuteNonQuery();
              }
              catch(Exception ex)
 ![]()               {    
                  ex.Message.ToString();
                  return false;
              }
              finally
 ![]()               {
                  this.Close();                
              }
              return true;
          }
 ![]() 
 ![]()          /**//// <summary>
          /// 执行一个无返回的SqlCe语句,带parameters
          /// </summary>                
          /// <param name="SqlCe">SqlCe语句</param>
          /// <returns>执行结果</returns>
          public bool QueryExec(string SqlCe, SqlCeParameter[] parms)
 ![]()           {                
              SqlCeCommand cmd = CreateCommand(SqlCe, parms);
              try
 ![]()               {                
                  cmd.ExecuteNonQuery();
              }
              catch(Exception ex)
 ![]()               {    
                  ex.Message.ToString();
                  return false;
              }
              finally
 ![]()               {
                  this.Close();                
              }
              return true;
          }
 ![]() 
 ![]()          /**//// <summary>
          /// 执行一个插入记录操作,返回primary key
          /// </summary>                
          /// <param name="SqlCe">insert SqlCe语句</param>
          /// <returns>返回的primary key</returns>
          public String InsertExec(string SqlCe)
 ![]()           {
              SqlCe += ";SELECT @@identity AS [@@IDENTITY];";
              SqlCeCommand cmd = CreateCommand(SqlCe);
              try
 ![]()               {            
                  return cmd.ExecuteScalar().ToString();
              }
              catch
 ![]()               {
                  return null;
              }
              finally
 ![]()               {
                  this.Close();                
              }
          }
 ![]() 
 ![]()          /**//// <summary>
          /// 执行一个插入记录操作,带parameters,返回primary key
          /// </summary>                
          /// <param name="SqlCe">insert SqlCe语句</param>
          /// <returns>返回的primary key</returns>
          public String InsertExec(string SqlCe, SqlCeParameter[] prams)
 ![]()           {
              SqlCe += ";SELECT @@identity AS [@@IDENTITY];";
              SqlCeCommand cmd = CreateCommand(SqlCe, prams);
              try
 ![]()               {            
                  return cmd.ExecuteScalar().ToString();
              }
              catch(Exception ex)
 ![]()               {
                  ex.Message.ToString();
                  return null;
              }
              finally
 ![]()               {
                  this.Close();                
              }
          }
 ![]() 
 ![]()          /**//// <summary>
          /// 通过查询指定的SqlCe语句来获得一个返回值
          /// </summary>
          /// <param name="SqlCe">SqlCe语句</param>
          /// <returns>返回值</returns>
          public String QueryValue(string SqlCe)
 ![]()           {
              SqlCeCommand cmd = CreateCommand(SqlCe);
              try
 ![]()               {                
                  return cmd.ExecuteScalar().ToString();
              }
              catch(Exception ex)
 ![]()               {    
                  ex.Message.ToString();
                  return null;
              }
              finally
 ![]()               {
                  this.Close();
              }
          }    
 ![]()          /**//// <summary>
          /// 通过查询指定的SqlCe语句来获得一个返回表,带parms
          /// </summary>
          /// <param name="SqlCe"></param>
          /// <param name="prams"></param>
          /// <returns></returns>
          public DataTable QueryDataTable(string SqlCe,SqlCeParameter[] parms)
 ![]()           {
              DataTable dataTable = new DataTable();
              SqlCeCommand cmd = CreateCommand(SqlCe,parms);
              try
 ![]()               {            
                  SqlCeDataAdapter dataAdapter = new SqlCeDataAdapter(cmd);
                  dataAdapter.Fill(dataTable);
              }
              catch(Exception ex)
 ![]()               {
                  ex.Message.ToString();
                  dataTable = null;
              }
              finally
 ![]()               {
                  this.Close();
              }
              return dataTable;
          }
 ![]() 
 ![]()          /**//// <summary>
          /// 通过查询指定的SqlCe语句来获得一个返回值,带parms
          /// </summary>
          /// <param name="SqlCe">SqlCe语句</param>
          /// <returns>返回值</returns>
          public String QueryValue(string SqlCe, SqlCeParameter[] prams)
 ![]()           {
              SqlCeCommand cmd = CreateCommand(SqlCe, prams);
              try
 ![]()               {                
                  return cmd.ExecuteScalar().ToString();
              }
              catch(Exception ex)
 ![]()               {    
                  ex.Message.ToString();
                  return null;
              }
              finally
 ![]()               {
                  this.Close();
              }
          }
      
 ![]()          /**//// <summary>
          /// 查询返回DATAREADER
          /// </summary>
          /// <param name="dr"></param>
          /// <param name="error"></param>
          /// <param name="SqlCeConnectionString"></param>
          /// <param name="SqlCe">SqlCe语句</param>
          public SqlCeDataReader QueryDataReader(string SqlCe)
 ![]()           {            
              try
 ![]()               {
                  SqlCeCommand cmd = CreateCommand(SqlCe);
                  return cmd.ExecuteReader();        
              }
              catch
 ![]()               {    
                  return null;
              }
              finally
 ![]()               {        
              }    
          }
 ![]() 
 ![]()          /**//// <summary>
          /// 查询返回DATASET
          /// </summary>
          /// <param name="SqlCe">SqlCe语句</param>
          /// <returns>DataSet对象</returns>
          public DataSet QueryDataSet (string SqlCe)
 ![]()           {            
              SqlCeCommand cmd = CreateCommand(SqlCe);
              DataSet ds = new DataSet();            
              try
 ![]()               {
                  SqlCeDataAdapter dataAdapter = new SqlCeDataAdapter(cmd);                            
                  dataAdapter.Fill(ds);
              }
              catch(Exception ex)
 ![]()               {    
                  ex.Message.ToString();
                  ds = null;
              }
              finally
 ![]()               {
                  this.Close();                
              }
              return ds;    
          }
 ![]() 
 ![]()          /**//// <summary>
          /// 通过SqlCe语句返回DataTable。
          /// </summary>
          /// <returns>DataTable</returns>
          public DataTable QueryDataTable(string SqlCe)
 ![]()           {
              DataTable dataTable = new DataTable();
              SqlCeCommand cmd = CreateCommand(SqlCe);
              try
 ![]()               {            
                  SqlCeDataAdapter dataAdapter = new SqlCeDataAdapter(cmd);
                  dataAdapter.Fill(dataTable);
              }
              catch(Exception ex)
 ![]()               {    
                  ex.Message.ToString();
                  dataTable = null;
              }
              finally
 ![]()               {
                  this.Close();
              }
              return dataTable;
          }
 ![]() 
 ![]()          /**//// <summary>
          /// 包装输入参数。
          /// </summary>
          /// <param name="ParamName">Name of param.</param>
          /// <param name="DbType">Param type.</param>
          /// <param name="Size">Param size.</param>
          /// <param name="Value">Param value.</param>
          /// <returns>New parameter.</returns>
          public SqlCeParameter MakeInParam(string ParamName, SqlDbType DbType, int Size, object Value) 
 ![]()           {
              return MakeParam(ParamName, DbType, Size, ParameterDirection.Input, Value);
          }        
 ![]() 
 ![]()          /**//// <summary>
          /// 包装输出参数。
          /// </summary>
          /// <param name="ParamName">Name of param.</param>
          /// <param name="DbType">Param type.</param>
          /// <param name="Size">Param size.</param>
          /// <returns>New parameter.</returns>
          public SqlCeParameter MakeOutParam(string ParamName, SqlDbType DbType, int Size) 
 ![]()           {
              return MakeParam(ParamName, DbType, Size, ParameterDirection.Output, null);
          }    
 ![]() 
          public SqlCeParameter MakeOutParam(string ParamName, SqlDbType DbType, int Size, object Value) 
 ![]()           {
              return MakeParam(ParamName, DbType, Size, ParameterDirection.Output, Value);
          }    
 ![]() 
 ![]()          /**//// <summary>
          /// 包装Command参数。
          /// </summary>
          /// <param name="ParamName">Name of param.</param>
          /// <param name="DbType">Param type.</param>
          /// <param name="Size">Param size.</param>
          /// <param name="Direction">Parm direction.</param>
          /// <param name="Value">Param value.</param>
          /// <returns>New parameter.</returns>
          public SqlCeParameter MakeParam(string ParamName, SqlDbType DbType, Int32 Size, ParameterDirection Direction, object Value) 
 ![]()           {
              SqlCeParameter param;
 ![]() 
              if(Size > 0)
                  param = new SqlCeParameter(ParamName, DbType, Size);
              else
                  param = new SqlCeParameter(ParamName, DbType);
 ![]() 
              param.Direction = Direction;
              if (!(Direction == ParameterDirection.Output && Value == null))
                  param.Value = Value;
              else Value = param.Value;
              return param;
          }
      }
  }
 ![]()  
 
 
	 
 
			 
		 |