位置:海鸟网 > IT > ASP.NET >

DBEngine的类片段(使用自动填充)

private bool IsInitializeDataAccess()
        {
            bool IsInit=false;
            #region intialize
            if(this.accessSql ==null)
            {
                if(this.cnnstr!="")
                {
                    this.accessSql =new DataAccessSQL(this.cnnstr);
                    IsInit =true;
                }
                else
                {
                    throw new Exception("The Connectstring is null! program can't create a connect with SQL server.");
                }
            }
            else
            {
                IsInit =true;
            }
            #endregion  
            return IsInit;
        }
        private SqlCommand sqlSPCmd(String spname,Hashtable values)
        {
            #region intialize
            if(!IsInitializeDataAccess())
                return null;
            #endregion
            SqlCommand cmd= new SqlCommand();
            cmd.Connection=new SqlConnection(this.cnnstr);
            cmd.CommandText =spname;
            cmd.CommandType =CommandType.StoredProcedure;
            cmd.CommandTimeout =30;        
            cmd=accessSql.getStroeProcedureParamsByName(cmd)
            foreach(SqlParameter sp in cmd.Parameters)
            {               
                if(values[sp.ParameterName.Substring(1)].ToString()!="" ||values[sp.ParameterName.Substring(1)]!=null)
                {
                    object o=(object)values[sp.ParameterName.Substring(1)];
                    cmd.Parameters[sp.ParameterName].Value =o;
                }               
                else
                {
                    cmd.Parameters[sp.ParameterName].Value =null;
                }
               
            }        
            return cmd;
        }
private Hashtable CreateHashTable(string[] cutkeys,object[] cutvalues)
  {
   Hashtable newvalues=new Hashtable();
   for(int i=0;i<cutkeys.Length;i++)
   {
    newvalues.Add(cutkeys,cutvalues);
    Console.WriteLine("key="+cutkeys.ToString()+"|value="+cutvalues.ToString());
   }
   return newvalues;
  }
  public void ExecuteNonQuery(String spname,string[] capation,Object[] values)
  {   
   Hashtable newvalues=this.CreateHashTable(capation,values);   
   #region build sqlcommand.Parameters and execute command
   //SqlConnection conn = new SqlConnection(this.cnnstr);
   SqlCommand noretcmd=this.sqlSPCmd(spname,newvalues);
   try
   {
    noretcmd.Connection.Open();
    noretcmd.Prepare();
    noretcmd.ExecuteNonQuery();
   }
   catch(SqlException se)
   {
     throw(se);
   }
   finally
   {
    if(noretcmd.Connection.State==ConnectionState.Open )//(conn.State==ConnectionState.Open)
    {
     noretcmd.Connection.Close();
    }
   }
   #endregion
  }