2009-10-30 3 views
4

Je suis occupé avec une application web e-commerce en utilisant Visual Studio 2005 et IIS 7System.TypeInitializationException était non gérée par un code utilisateur erreur s'il vous plaît aider

J'ai eu cette erreur

System.TypeInitializationException était non gérée par l'utilisateur Message

Message = "L'initialiseur de type pour 'ShopConfiguration' a émis une exception."

Source = "App_Code.r-ihwy-d"

TypeName = "ShopConfiguration"

StackTrace:

at ShopConfiguration.get_DbProviderName() 

    at GenericDataAccess.CreateCommand() in c:\inetpub\wwwroot\Beadafrican\App_Code\GenericDataAccess.cs:line 63 

    at CatalogAccess.GetDepartments() in c:\inetpub\wwwroot\Beadafrican\App_Code\CatalogAccess.cs:line 28 

    at UserControls_DepartmentsList.Page_Load(Object sender, EventArgs e) in c:\inetpub\wwwroot\Beadafrican\UserControls\DepartmentsList.ascx.cs:line 22 

    at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) 

    at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) 

    at System.Web.UI.Control.OnLoad(EventArgs e) 

    at System.Web.UI.Control.LoadRecursive() 

    at System.Web.UI.Control.LoadRecursive() 

    at System.Web.UI.Control.LoadRecursive() 

    at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) 

Si je regarde le code, il fait référence à ce que je ne vois pas est faux? Voici le code si quelqu'un peut s'il vous plaît aider ce serait génial!

GenericDataAccess.cs:

public static class GenericDataAccess {// constructeur statique GenericDataAccess statique() { // // TODO : Ajouter la logique constructeur ici // }

//execute a command and returns the result as a DataTable Object 
public static DataTable ExecuteSelectCommand(DbCommand command) 
{ 
    //The DataTable to be returned 
    DataTable table; 

    //Execute the command making sure the connection gets closed in the end 
    try 
    { 
     //open the data connection 
     command.Connection.Open(); 

     //Execute the command and save the results in a DataTable 
     DbDataReader reader = command.ExecuteReader(); 
     table = new DataTable(); 
     table.Load(reader); 

     //Close the reader 
     reader.Close(); 
    } 
    catch (Exception ex) 
    { 
     Utilities.LogError(ex); 
     throw ex; 
    } 
    finally 
    { 
     //Close the connection 
     command.Connection.Close(); 
    } 
    return table; 
} 

//creates and prepares a new DbCommand object on a new connection 
public static DbCommand CreateCommand() 
{ 
    //Obtain the database provider name 
    string dataProviderName = ShopConfiguration.DbProviderName; 

    //Obtain the database connection string 
    string connectionString = ShopConfiguration.DbConnectionString; 

    //Create a new data provider factory 
    DbProviderFactory factory = DbProviderFactories.GetFactory(dataProviderName); 

    //Obtain a database specific connection object 
    DbConnection conn = factory.CreateConnection(); 

    //Set the connection string 
    conn.ConnectionString = connectionString; 

    //Create a database specific command object 
    DbCommand comm = conn.CreateCommand(); 

    //Set the command type to stored procedure 
    comm.CommandType = CommandType.StoredProcedure; 

    //Return the initialised command object 
    return comm; 
} 

CatalogAccess.cs

public static class CatalogAccess { CatalogAccess statique() { // // TODO : Ajouter la logique constructeur ici // }

//Retrieve the list of departments 
public static DataTable GetDepartments() 
{ 
    //get configured DbCommand object 
    DbCommand comm = GenericDataAccess.CreateCommand(); 

    //set the stored procedure name 
    comm.CommandText = "GetDepartments"; 

    //execute the stored procedure and return the results 
    return GenericDataAccess.ExecuteSelectCommand(comm); 


} 

}

DepartementList.ascx.cs

public partiel classe UserControls_DepartmentsList: System.Web.UI.UserControl { // Load les détails de service dans le DataList protected void Page_Load (expéditeur d'objet, EventArgs e) { // ne rechargent pas les données pendant postbacks

{ 
     // CatalogAccess.GetDepartments returns a DataTable object containing 
     // department data, which is read in the ItemTemplate of the DataList 
     list.DataSource = CatalogAccess.GetDepartments(); 
     // Needed to bind the data bound controls to the data source 
     list.DataBind(); 

    } 
} 

}

la classe ShopConfiguration

{ // Met en cache la chaîne de connexion private readonly static string dbConnectionString;

//Caches the data provider name 
private readonly 

chaîne statique dbProviderName;

//stores the number of products per page 
private readonly static int productsPerPage; 

//Stores the product description length for product lits 
private readonly static int productDescriptionLenght; 

//Store the name of your shop 
private readonly static string siteName; 

//Initialize various proeprties in the constructor 
static ShopConfiguration() 
{ 
    dbConnectionString = ConfigurationManager.ConnectionStrings["LocalSqlServer"].ConnectionString; 
    dbProviderName = ConfigurationManager.ConnectionStrings["LocalSqlServer"].ProviderName; 
    productsPerPage = Int32.Parse(ConfigurationManager.AppSettings["ProductsPerPage"]); 
    productDescriptionLenght = Int32.Parse(ConfigurationManager.AppSettings["ProductDescriptionLenght"]); 
    siteName = ConfigurationManager.AppSettings["SiteName"]; 

} 

//Returns the connection string for BeadAfrican database 
public static string DbConnectionString 
{ 
    get 
    { 
     return dbConnectionString; 
    } 
} 


//Returns the data provider name 
public static string DbProviderName 
{ 
    get 
    { 
     return dbProviderName; 
    } 
} 
+0

Ceci est ma chaîne de connexion - peut-être qu'il me manque quelque chose?

Répondre

0

On dirait que vous avez spécifié un paramètre non valide pour DbProviderName afin que les rapports internes de code de vérification de cette exception.Vous feriez mieux de revoir les paramètres de la chaîne de connexion.

+0

Ceci est ma chaîne de connexion - peut-être qu'il me manque quelque chose?

6

Je suis assez sûr que le TypeInitializationException qui est levé a une autre exception affectée à sa propriété InnerException. Si vous examinez cette exception, je pense que vous trouverez la véritable cause de votre problème.

Questions connexes