SqlServerCE数据库类

5 篇文章 0 订阅
2 篇文章 0 订阅
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;
        }

    }

}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
sql server ce 的工具 非常有用 SQL Server 2005 移动版(SQL Server Mobile)或SQL Server 2000 Windows CE 2.0版(SQL Server CE 2.0)的企业和个人用户如果计划与SQL Server 2000或SQL Server 2005数据库保持同步,需要在您运行Microsoft Internet Information Services(IIS)的服务器上安装互联工具。 本页内容表述的是互联工具。请注意文件名中的“xx”是代表安装语言的标识符。最初仅有英文互联工具信息(“en”即标识符“XX”)。为满足向后兼容的需要,我们提供SQL Server CE 2.0复制软件。 请查阅安装互联工具的设置说明。 1. Microsoft SQL Server 2005移动版服务器工具(sqlce30setupxx.msi)在IIS 箱中安装SQL Server Mobile复制组件。 这个组件用于把移动设备中的SQL Server Mobile连接到SQL Server 2005、SQL Server 2000 SP3a、及 SQL Server 2000 SP4数据库。 2. Microsoft SQL Server 2000 Service Pack 4复制组件(sql2kxxsp4.msi)在IIS机器中安装SQL Server 2000 SP3a复制组件。这个组件用于把移动设备中的SQL Mobile数据库连接到SQL Server 2000 SP4数据库。 3. Microsoft SQL Server 2000 Service Pack 3a复制组件(sql2kxxsp3a.msi)在IIS机器中安装 SQL Server CE 2.0 及 SQL Server 2000 SP4 复制组件。 该组件用于把移动设备中的SQL Server CE 2.0数据库连接到SQL Server 2000 SP3a数据库。 4. 用于SQL Server 2000 SP4 (sqlce20sql2ksp4.exe)的SQL Server CE 2.0 复制组件在IIS机器中安装 SQL Server CE 2.0 及 SQL Server 2000 SP4 复制组件。该组件用于把移动设备中的SQL Server CE 2.0数据库连接到SQL Server 2000 SP4。 5. 用于SQL Server 2000 SP3a (sqlce20sql2ksp3a.exe)的SQL Server CE 2.0复制组件在IIS机器中安装SQL Server CE 2.0 及 SQL Server 2000 SP3a 复制组件。该组件用于把移动设备中的SQL Server CE 2.0数据库连接到SQL Server 2000 SP3a 数据库
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值