Le format de la chaîne d’initialisation n’est pas conforme à la spécification à partir de l’index 0

J’utilise Microsoft Enterprise Lip II avec cette méthode pour insérer une ressource dans le site Web. Cette erreur est signalée. Je ne pense pas que ce soit un problème de permission et, en réalité, je ne sais pas comment le résoudre. ça marche bien

   public static int Insert(Resoursce r) { Database objDB = new SqlDatabase("SiteSqlServer"); int val = 0; using (DbCommand cmd = objDB.GetStoredProcCommand("InsertResoursce")) { // OutParameter objDB.AddOutParameter(cmd,"@OutResoursceID",DbType.Int32,int.MaxValue); // iNParameter objDB.AddInParameter(cmd, "@ModuleId", DbType.Int32, r.ModuleId); objDB.AddInParameter(cmd, "@Summary", DbType.SsortingngFixedLength, r.Summary); objDB.AddInParameter(cmd, "@PageId", DbType.SsortingngFixedLength, r.PageID); objDB.AddInParameter(cmd, "@TypeId", DbType.Int32, r.TypeID); objDB.AddInParameter(cmd, "@UserID", DbType.Guid, r.UserID); objDB.AddInParameter(cmd, "@Enabled", DbType.Boolean, r.Enabled); objDB.AddInParameter(cmd, "@SafetyAlert", DbType.Boolean, r.SafetyAlert); objDB.AddInParameter(cmd, "@SaftyAlertText", DbType.SsortingngFixedLength, r.SafetyAlertText); try { val = objDB.ExecuteNonQuery(cmd); if (val == 1) { return Convert.ToInt32(objDB.GetParameterValue(cmd, "@OutResoursceID")); } else { return -1; } } catch (Exception ex) { throw ex; } } 

System.ArgumentException a été intercepté HResult = -2147024809
Message = Le format de la chaîne d’initialisation n’est pas conforme à la spécification commençant à l’index 0. Source = System.Data StackTrace: à System.Data.Common.DbConnectionOptions.GetKeyValuePair (Ssortingng connectionSsortingng, Int32 currentPosition, SsortingngBuilder, Boolean useOdbcRules, Ssortingng & keyname, Ssortingng & keyvalue) à System.Data.Common.DbConnectionOptions.ParseInternal (Hashtable parsetable, Ssortingng connectionSsortingng, Boolean buildChain, synonymes de Hashtable, Boolean firstKey) à System.Data.Common.DbConnectionOptions..ctor (Ssortingng connectionSsortingng, Hashtable synonymes, Boolean, Bony) est dans la liste userConnectionOptions) à System.Data.SqlClient.S qlConnection.ConnectionSsortingng_Set (clé DbConnectionPoolKey) chez System.Data.SqlClient.SqlConnection.set_ConnectionSsortingng (valeur de chaîne) chez Microsoft.Practices Microsoft.Practices.EnterpriseLibrary.Data.Database.GetWrappedConnection () à Microsoft.Practices.EnterpriseLibrary.Data.Database.GetOpenConnection () à Microsoft.Practices.EnterpriseLibrary.Data.Database.Date.Database.ExecuteNonQuery (commande DbCommand) à Christoc. App_Code.BOL.Resoursce.Insert (Resoursce r) dans c: \ inetpub \ wwwroot \ ideaPark \ DesktopModules \ ResourceModule \ Code_App \ BOL \ Resoursce.cs: ligne 54 InnerException:

Cela signifie généralement que votre chaîne de connexion n’est pas bonne. Si vous examinez la trace de la stack, vous remarquerez que cela échoue lorsque vous essayez d’interpréter votre chaîne de connexion.

Vérifiez votre chaîne de connexion pour vous assurer qu’elle est correcte – ou postez-la ici pour obtenir de l’aide (mais sans aucune information sensible telle que des mots de passe;))

METTRE À JOUR

Selon la documentation SqlDatabase, la classe SqlDatabase utilise une chaîne de connexion, pas une clé pour la configuration de chaîne de connexion.

Alors

 new SqlDatabase("SiteSqlServer"); 

Devrait être

 var connection = ConfigurationManager.ConnectionSsortingngs["SiteSqlServer"]; Database objDB = new SqlDatabase(connection.ConnectionSsortingng); 

(J’ai omis ici tout code défensif par souci de brièveté)