2012-05-06 3 views
0

je fais une application simple avec NHibernate: classe utilisateur.hbm.xmlexception NHibernate C#

<?xml version="1.0" encoding="utf-8" ?> 
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" auto-import="true"> 
    <class name="nhiber.utilisateur, nhiber" table="utilisateur"> 
    <id name="login" type="string"></id> 
    <property name="password" type="string" /> 
    <property name="age" type="int" /> 
    <property name="location" type="string" /> 
    <property name="name" type="string" /> 
    </class> 
</hibernate-mapping> 

utilisateur.cs classe

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using NHibernate; 
using NHibernate.Cfg; 
using System.Reflection; 

namespace nhiber 
{ 
    public class utilisateur 
    { 
     public virtual string login { get; set; } 
     public virtual string password { get; set; } 
     public virtual string name { get; set; } 
     public virtual int age { get; set; } 
     public virtual string location { get; set; } 
     public virtual IList<utilisateur> get_liste_utilisateurs(){ 
      using (ISession session = OpenSession()) 
      { 
       IQuery query = session.CreateQuery("FROM utilisateur"); 
       IList<utilisateur> pets = query.List<utilisateur>(); 
       return pets; 
      } 
     } 
     public static ISessionFactory SessionFactory; 
     public static ISession OpenSession() 
     { 
      if (SessionFactory == null) //not threadsafe 
      { Configuration config = new Configuration(); 
       config.AddAssembly(Assembly.GetCallingAssembly()); 
       SessionFactory = config.BuildSessionFactory(); 
      } 
      return SessionFactory.OpenSession(); 
     } 
    } 
} 

App.config fichier:

<?xml version="1.0"?> 
<configuration> 
    <configSections> 

    <section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler,NHibernate" /> 

    </configSections> 

    <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2"> 
    <session-factory> 
     <property name="connection.provider"> 
     NHibernate.Connection.DriverConnectionProvider 
     </property> 
     <property name="connection.driver_class"> 
     NHibernate.Driver.SqlClientDriver 
     </property> 
     <property name="connection.connection_string"> 
     Data Source=HP-PC\\SQLEXPRESS;Initial Catalog=Simulation;Integrated Security=True;Pooling=False; 
     </property> 
     <property name="dialect"> 
     NHibernate.Dialect.MsSql2005Dialect 
     </property> 
     <property name="show_sql"> 
     false 
     </property> 
     <property name="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property> 
     <mapping assembly="nhiber"/> 
    </session-factory> 
    </hibernate-configuration> 
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration> 

classe form.cs:

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 
using System.IO; 

namespace nhiber 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
      try 
      { 
       utilisateur u = new utilisateur(); 
       for (int i = 0; i < u.get_liste_utilisateurs().Count; i++) 
        textBox1.Text += "\r\n" + u.get_liste_utilisateurs()[i].name; 
      } 
      catch (Exception e) { File.AppendAllText(@"C:\Users\HP\Desktop\test1.txt", e.ToString()); } 
     } 
    } 
} 

mais j'ai cette exception: System.InvalidOperationException: Échec d'instance. à System.Data.SqlClient.TdsParser.Connect (ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Cryptage booléen, Boolean trustServerCert, Boolean integratedSecurity) à nhiber.utilisateur.OpenSession() dans C: \ Users \ HP \ documents \ studio visuel 2010 \ Projets \ nhiber \ utilisateur.cs: ligne 32 à nhiber.utilisateur.get_liste_utilisateurs() dans C: \ Utilisateurs \ HP \ documents \ studio visuel 2010 \ Projets \ nhiber \ utilisateur.cs: ligne 19 à nhiber.Form1..ctor() dans C: \ Utilisateurs \ HP \ documents \ studio visuel 2010 \ Projets \ nhiber \ Form1.cs: ligne 21

J'ai besoin de help.any conseils?

Répondre

1

Je soupçonne c'est le problème:

Data Source=HP-PC\\SQLEXPRESS;Initial Catalog=Simulation (...) 

Je suppose que vous avez copié ce à partir d'une chaîne littérale, et qu'il devrait en fait être

Data Source=HP-PC\SQLEXPRESS;Initial Catalog=Simulation (...) 

(Notez la barre oblique inverse - quelle est la valeur que vous obtiendriez de la barre oblique inverse double dans un littéral en code source C#.)

+0

merci beaucoup Jon –