当前位置:首页
开发技术指南» 文章正文
    引言:

    摘要: 进行多表查询的时候,需要达到这样的效果。 表user 用户名 电话号码 联系方式... 表pay 电话号码 月份 付费 6777777 10 100 6777777 11 120 6775555 10 100 6775555 11 120 如要查询11月费用,查询后得到 用户名 电话号码 10月付费 11月付费 6777777 100 120 6775555 100 120 怎样才能达......
 ·怎么会出现这个问题    »显示摘要«
    摘要: 我的系统用的是asa的数据库,以前我发现某个表出现问题后,我可以在里面把某列删除,或在末尾添加一列,或是修改某列的名字,为什么今天不行了。提示"the following ddl command is not supported:addcolumn" ......


一个数据库SQL2000的连接类

一个数据库SQL2000的连接类,全代码

NO.1   作者: angxain

 
  namespace   OYAMA.DB    
  {  
  using   System;  
  using   System.Data;  
  using   System.Data.SqlClient;  
   
   
  ///   <summary>  
  ///   龟瞷林SQLServer计沮畐硄癟  
  ///   </summary>  
  public   class   SQLServer   /*   Build   by   Brian@2003/4/16   */  
  {  
  private   static   string   _ConnectionString;  
  private   static   SqlConnection   _cn=null;  
   
  public   static   string   ConnectionString    
  {  
  get   {   return   _ConnectionString;   }  
  set   {   _ConnectionString   =   value;   }  
  }   //   羛钡﹃  
   
  public   static   void   OpenDatabase()    
  {  
  try  
  {  
  //   耞畐硈钡癸禜琌竒﹍て  
  if(_cn==null)  
  _cn=new   SqlConnection(_ConnectionString);  
   
  //   耞硈钡篈琌ゴ秨  
  if(_cn.State!=ConnectionState.Open)  
  _cn.Open();  
  }  
  catch(Exception   ee)  
  {  
  throw   ee;  
  }  
   
  }   //   ゴ秨畐  
   
  public   static   bool   CloseDatabase()    
  {  
  try  
  {  
  if(_cn.State!=ConnectionState.Closed)  
  _cn.Close();  
  if(_cn!=null)  
  _cn=null;  
  return   true;  
  }  
  catch  
  {  
  //throw   e;  
  return   false;  
  }  
   
  }   //   闽超畐    
   
   
  public   static   SqlConnection   GetConnection()    
  {  
  return   _cn;  
  }    
   
  }  
   
 

NO.2   作者: greenery

using   System;  
  using   System.Configuration;  
  using   System.Data;  
  using   System.Data.SqlClient;  
  using   System.Collections;  
  using   System.Xml;  
   
  //////////////////////////////////////////////////////////////////////////  
  ///   查考于VS.NET   的企业版例子:PetShop   3.0  
  ///   说明  
  ///   加了一些改动  
  ///   数据库链接明文写在程序配置文件里  
  ///   <add   key="ConnString"   value="Data   Source=(local);Max   Pool   Size=100;Min   Pool   Size=3;database=master;User   ID=DBUser;Password=DBPassword;"   />  
  ///   返回XML文档时的根开始标记为   XML_START_ROOT  
  ///    
  ///   作者:Greenery2000  
  ///   Email:Greenery2000@21cn.com  
  ///   开始日期:     2003-04-17  
  ///   最后修改日期:2003-12-18  
  //////////////////////////////////////////////////////////////////////////  
   
  namespace   WebPlat.Components  
  {  
  public   abstract   class   CDatabase  
  {  
   
  ///   <summary>  
  ///   返回XML文档时的根开始标记  
  ///   </summary>  
  public   static   readonly   string   XML_START_ROOT =   "<Tree>\r\n";  
  ///   <summary>  
  ///   返回XML文档时的根结束标记  
  ///   </summary>  
  public   static   readonly   string   XML_END_ROOT =   "\r\n</Tree>";  
   
  ///   <summary>  
  ///   用与获取执行存储过程的返回值的参数  
  ///   </summary>  
  protected   static   readonly   string   PARM_RETURN_VALUE =   "@ParamReturn";  
   
  ///   <summary>  
  ///   用于Cache存储过程的Hashtable  
  ///   </summary>  
  protected   static   Hashtable   parmCache   =   Hashtable.Synchronized(new   Hashtable());  
   
  ///   <summary>  
  ///   连接数据库的字符串  
  ///   </summary>  
  protected   static   string   m_sConnectString   =   null;  
   
  ///   <summary>  
  ///   连接字符串  
  ///   </summary>  
  ///   <returns></returns>  
  public   static   string   ConnectionString  
  {  
  get{  
  if   (   m_sConnectString   ==   null   )  
  {  
  m_sConnectString   =   ConfigurationSettings.AppSettings["ConnString"];  
  }  
  return   m_sConnectString;  
  }  
  }  
   
  ///   <summary>  
  ///   打开新连接,执行T-SQL命令,返回受影响行数  
  ///   </summary>  
  ///   <param   name="connString">数据库连接字符串</param>  
  ///   <param   name="cmdType">命令类型</param>  
  ///   <param   name="cmdText">命令行</param>  
  ///   <param   name="cmdParms">参数集</param>  
  ///   <returns>受影响行数</returns>  
  public   static   int   ExecuteNonQuery(CommandType   cmdType,   string   cmdText,   params   SqlParameter[]   cmdParms)    
  {  
  return   ExecuteNonQuery(ConnectionString,   cmdType,   cmdText,   cmdParms);  
  }  
   
  ///   <summary>  
  ///   打开新连接,执行T-SQL命令,返回受影响行数  
  ///   </summary>  
  ///   <param   name="connString">数据库连接字符串</param>  
  ///   <param   name="cmdType">命令类型</param>  
  ///   <param   name="cmdText">命令行</param>  
  ///   <param   name="cmdParms">参数集</param>  
  ///   <returns>受影响行数</returns>  
  public   static   int   ExecuteNonQuery(string   connString,   CommandType   cmdType,   string   cmdText,   params   SqlParameter[]   cmdParms)  
  {  
  if   (CLogInfo.DebugMode)  
  {  
  CLogInfo.Log(GetSQLCommand(cmdText,cmdParms),   "ExecuteNonQuery");  
  }  
  SqlCommand   cmd   =   new   SqlCommand();  
   
  using   (SqlConnection   conn   =   new   SqlConnection(connString))   {  
  PrepareCommand(cmd,   conn,   null,   cmdType,   cmdText,   cmdParms);  
  int   val   =   cmd.ExecuteNonQuery();  
  cmd.Parameters.Clear();  
  cmd   =   null;  
  return   val;  
  }  
  }  
   
  ///   <summary>  
  ///   基于打开的事务,执行T-SQL命令,返回受影响行数  
  ///   </summary>  
  ///   <param   name="connString">数据库连接字符串</param>  
  ///   <param   name="cmdType">命令类型</param>  
  ///   <param   name="cmdText">命令行</param>  
  ///   <param   name="cmdParms">参数集</param>  
  ///   <returns>影响行数</returns>  
  public   static   int   ExecuteNonQuery(SqlTransaction   trans,   CommandType   cmdType,   string   cmdText,   params   SqlParameter[]   cmdParms)    
  {  
  if   (CLogInfo.DebugMode)  
  {  
  CLogInfo.Log(GetSQLCommand(cmdText,cmdParms),   "ExecuteNonQuery:trans");  
  }  
  SqlCommand   cmd   =   new   SqlCommand();  
  PrepareCommand(cmd,   trans.Connection,   trans,   cmdType,   cmdText,   cmdParms);  
  int   val   =   cmd.ExecuteNonQuery();  
  cmd.Parameters.Clear();  
  cmd   =   null;  
  return   val;  
  }  
   
  ///   <summary>  
  ///   打开新连接,执行存储过程,并返回执行结果  
  ///   </summary>  
  ///   <param   name="cmdText">存储过程名</param>  
  ///   <param   name="cmdParms">参数集</param>  
  ///   <returns>存储过程返回值</returns>  
  public   static   int   ExecuteProcedure(string   cmdText,   params   SqlParameter[]   cmdParms)    
  {  
  return   ExecuteProcedure(ConnectionString,   cmdText,   cmdParms);  
  }  
   
  ///   <summary>  
  ///   打开新连接,执行存储过程,并返回执行结果  
  ///   </summary>  
  ///   <param   name="connString">数据库连接字符串</param>  
  ///   <param   name="cmdText">存储过程名</param>  
  ///   <param   name="cmdParms">参数集</param>  
  ///   <returns>存储过程返回值</returns>  
  public   static   int   ExecuteProcedure(string   connString,   string   cmdText,   params   SqlParameter[]   cmdParms)    
  {  
  if   (CLogInfo.DebugMode)  
  {  
  CLogInfo.Log(GetSQLCommand(cmdText,cmdParms),   "ExecuteProcedure");  
  }  
  SqlCommand   cmd   =   new   SqlCommand();  
   
  using   (SqlConnection   conn   =   new   SqlConnection(connString))   {  
  PrepareCommand(cmd,   conn,   null,   CommandType.StoredProcedure,   cmdText,   cmdParms);  
   
  //   创建返回参数  
  SqlParameter   paramRet   =   cmd.Parameters.Add(PARM_RETURN_VALUE,   SqlDbType.Int);  
  paramRet.Direction   =   ParameterDirection.ReturnValue;  
   
  /*   int   val   =   */cmd.ExecuteNonQuery();  
  int   return_value   =   (int)paramRet.Value;  
  cmd.Parameters.Clear();  
  cmd   =   null;  
  return   return_value;  
  }  
  }  
   
  ///   <summary>  
  ///   基于打开的事务,执行存储过程,并返回执行结果  
  ///   </summary>  
  ///   <param   name="connString">数据库连接字符串</param>  
  ///   <param   name="cmdText">存储过程名</param>  
  ///   <param   name="cmdParms">参数集</param>  
  ///   <returns>存储过程返回值</returns>  
  public   static   int   ExecuteProcedure(SqlTransaction   trans,   string   cmdText,   params   SqlParameter[]   cmdParms)    
  {  
  if   (CLogInfo.DebugMode)  
  {  
  CLogInfo.Log(GetSQLCommand(cmdText,cmdParms),   "ExecuteProcedure:trans");  
  }  
  SqlCommand   cmd   =   new   SqlCommand();  
   
  PrepareCommand(cmd,   trans.Connection,   trans,   CommandType.StoredProcedure,   cmdText,   cmdParms);  
   
  //   创建返回参数  
  SqlParameter   paramRet   =   cmd.Parameters.Add(PARM_RETURN_VALUE,   SqlDbType.Int);  
  paramRet.Direction   =   ParameterDirection.ReturnValue;  
   
  /*   int   val   =   */cmd.ExecuteNonQuery();  
  int   return_value   =   (int)paramRet.Value;  
  cmd.Parameters.Clear();  
  cmd   =   null;  
  return   return_value;  
  }  
   
  ///   <summary>  
  ///   打开新连接,执行查询,并返回查询所返回的结果集中第一行的第一列。忽略额外的列或行。  
  ///   </summary>  
  ///   <param   name="connString">数据库连接字符串</param>  
  ///   <param   name="cmdType">命令类型</param>  
  ///   <param   name="cmdText">T-SQL命令</param>  
  ///   <param   name="srcTable">生成的表名</param>  
  ///   <param   name="cmdParms">参数集</param>  
  ///   <returns>结果集中第一行的第一列或空引用。</returns>  
  public   static   object   ExecuteScalar(CommandType   cmdType,   string   cmdText,   params   SqlParameter[]   cmdParms)    
  {  
  return   ExecuteScalar(ConnectionString,   cmdType,   cmdText,   cmdParms);  
  }  
   
  ///   <summary>  
  ///   打开新连接,执行查询,并返回查询所返回的结果集中第一行的第一列。忽略额外的列或行。  
  ///   </summary>  
  ///   <param   name="connString">数据库连接字符串</param>  
  ///   <param   name="cmdType">命令类型</param>  
  ///   <param   name="cmdText">T-SQL命令</param>  
  ///   <param   name="srcTable">生成的表名</param>  
  ///   <param   name="cmdParms">参数集</param>  
  ///   <returns>结果集中第一行的第一列或空引用。</returns>  
  public   static   object   ExecuteScalar(string   connString,   CommandType   cmdType,   string   cmdText,   params   SqlParameter[]   cmdParms)  
  {  
  if   (CLogInfo.DebugMode)  
  {  
  CLogInfo.Log(GetSQLCommand(cmdText,cmdParms),   "ExecuteScalar");  
  }  
  SqlCommand   cmd   =   new   SqlCommand();  
   
  using   (SqlConnection   conn   =   new   SqlConnection(connString))    
  {  
  PrepareCommand(cmd,   conn,   null,   cmdType,   cmdText,   cmdParms);  
  object   val   =   cmd.ExecuteScalar();  
  cmd.Parameters.Clear();  
  cmd   =   null;  
  return   val;  
  }  
  }


    摘要: 我想检查某个文本域是否包含当前用户名,是否是用域的每一个值和当前用户名作比较,但如何得到域有多少个值?或才说域多个值的结束标志是什么? ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE