begin process at 2012 02 10 12:22:34
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Base de données

 > 

SQL Server

 > 

nhibernate, sql serer 2005 et c#


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

nhibernate, sql serer 2005 et c#

mardi 18 novembre 2008 à 17:50:22 | nhibernate, sql serer 2005 et c#

laymouna98



salut à tous

je souhaite savoir comment je peut récupérer la dernière enregistrement d'une table de la base de données
je travail avec Nhibernate, C# et Sql server 2005

merci pour votre aide

mercredi 19 novembre 2008 à 10:11:45 | Re : nhibernate, sql serer 2005 et c#

yannickiwi

Salut,

Je ne connais pas Nhibernate, mais il me semble que dans les requete SQL (donc en touchant linq pour c#), tu as une fonction pour récupéré le dernier enregistrement de ce style:
var p = (from c in taTable
select new { Nom = c.lastName, Prenom = c.firstName }.Last()
);

En espérant avoir pu t'aider !

mercredi 19 novembre 2008 à 10:12:17 | Re : nhibernate, sql serer 2005 et c#

yannickiwi

var p = (from c in taTable
select new { Nom = c.lastName, Prenom = c.firstName }).Last());

Désolé, je t'ai donné une mauvaise requête avant ;)
vendredi 9 avril 2010 à 16:38:18 | Re : nhibernate, sql serer 2005 et c#

Riddenbest

BONJOUR TOUT LE MONDE ,
je suis débutant en NHibernate je commence ma premiere application en C# et SQL Server 2005 j'utilise NHibernate comme je vient le mentionner au début lorsque je compile mon application il ya une exeception qui m'affiche [NHibernate.Mappingexception:Could not instanciate Dialect Class ....]s'il y a une presonne qui peut m'aider n'haisitez pas c'est urgent pour moi
Merci d'avance !!
voici les fichier de mon projet:
App.config
<?xml version="1.0" encoding="utf-8" ?>

<configuration>
<configSections>
<section
name="log4net"
type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"
/>
</configSections>

<!-- Sélectionnez le type de base de donnée à utiliser et définissez sa ChaîneDeConnexion -->
<!-- Valeurs possibles: Access, MSSQL ou MySQL -->
<appSettings>
<add key="BaseDeDonnées" value="MSSQL" />
<add key="Access.ChaîneDeConnexion" value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=nhibernate.mdb" />
<add key="MSSQL.ChaîneDeConnexion" value="server = ETUDIANT-29A138;Initial Catalog=Base_test;Integrated Security=SSPI" />
<add key="MySQL.ChaîneDeConnexion" value="Server=localhost;Database=nhibernate;User ID=root;Password=" />
</appSettings>

<!-- Cette section contient les informations nécessaires à la configuration de log4net -->
<log4net>
<!-- Définie une sortie (où les textes de débogage peuvent aller) -->
<appender name="SortieVersUnFichier" type="log4net.Appender.FileAppender, log4net">
<param name="File" value="log.txt" />
<param name="AppendToFile" value="false" />
<layout type="log4net.Layout.PatternLayout, log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] &lt;%X{auth}&gt; - %m%n" />
</layout>
</appender>

<!-- Définie la catégorie racine, son niveau de priorité par défaut et ajoute le(s) sortie(s) (où les textes de débogage vont aller) -->
<root>
<priority value="WARN" />
<appender-ref ref="SortieVersUnFichier" />
</root>

<!-- Spécifie le niveau de certain namespaces -->
<!-- Le niveau peut être : ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF -->
<logger name="NHibernate">
<level value="INFO" />
</logger>
</log4net>
</configuration>




DBase_Connection.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NHibernate.Cfg;
using NHibernate.Mapping.Attributes;
using log4net;

using NHibernate_testC1.Domain;

namespace NHibernate_testC1
{
class DBase_connection
{private NHibernate.ISessionFactory _sessionFactory;


/// <summary> Configuration de l'accès à la base de données. </summary>
public DBase_connection(string baseDeDonnées, string chaîneDeConnexion)
{
System.Console.Out.WriteLine("Configuration de NHibernate...\n");

// Active l'inscription des informations de débogages sur les opérations de NHibernate
log4net.Config.XmlConfigurator.Configure();

// Crée l'objet qui contiendras les informations de configuration
// et assigne les informations pour accéder à la base de données
NHibernate.Cfg.Configuration cfg = new NHibernate.Cfg.Configuration();
cfg.SetProperty(NHibernate.Cfg.Environment.ConnectionProvider, "NHibernate.Connection.DriverConnectionProvider");

System.Console.Out.WriteLine("Utilise la base de données: <" + baseDeDonnées
+ ">\nChaîneDeConnexion: <" + chaîneDeConnexion + ">\n");

if("Access" == baseDeDonnées)
{
cfg.SetProperty(NHibernate.Cfg.Environment.Dialect, "NHibernate.JetDriver.JetDialect, NHibernate.JetDriver");
cfg.SetProperty(NHibernate.Cfg.Environment.ConnectionDriver, "NHibernate.JetDriver.JetDriver, NHibernate.JetDriver");
}
else if("MSSQL" == baseDeDonnées)
{
cfg.SetProperty(NHibernate.Cfg.Environment.ConnectionProvider, "NHibernate.Connection.DriverConnectionProvider");
cfg.SetProperty(NHibernate.Cfg.Environment.Dialect, "NHibernate.Dialect.MsSql2005Dialect");
cfg.SetProperty(NHibernate.Cfg.Environment.ConnectionDriver, "NHibernate.Driver.SqlClientDriver");

}
else if("MySQL" == baseDeDonnées)
{
cfg.SetProperty(NHibernate.Cfg.Environment.Dialect, "NHibernate.Dialect.MySQLDialect");
cfg.SetProperty(NHibernate.Cfg.Environment.ConnectionDriver, "NHibernate.Driver.MySqlDataDriver");
}
else
throw new System.InvalidOperationException("La base de données '" + baseDeDonnées + "' est inconnue.");

cfg.SetProperty(NHibernate.Cfg.Environment.ConnectionString, chaîneDeConnexion);


// Utilise NHibernate.Mapping.Attributes pour créer les informations sur les entités
System.IO.MemoryStream flux = new System.IO.MemoryStream(); // Contenant des informations
NHibernate.Mapping.Attributes.HbmSerializer.Default.Validate = true; // Active la validation (optionnel)
// Demande à NHibernate d'utiliser les champs et non les propriétés (dans les entités)
NHibernate.Mapping.Attributes.HbmSerializer.Default.HbmDefaultAccess = "field.camelcase-underscore";
// Récupère les informations à partir de cette assemblée (peut aussi être fait classe par classe)
System.Console.Out.WriteLine("NHibernate.Mapping.Attributes.HbmSerializer.Default.Serialize()...\n");
NHibernate.Mapping.Attributes.HbmSerializer.Default.Serialize(flux, System.Reflection.Assembly.GetExecutingAssembly());
flux.Position = 0;

cfg.AddInputStream(flux); // Envoi les informations de Mappage à la Configuration de NHibernate

flux.Close();


// Créé le(s) table(s) dans la base de données pour les entités
System.Console.Out.WriteLine("new NHibernate.Tool.hbm2ddl.SchemaExport(cfg).Create()...");
new NHibernate.Tool.hbm2ddl.SchemaExport(cfg).Create(true, true);


// Construit la "fabrique de sessions"
System.Console.Out.WriteLine("\n\nsessionFact = cfg.BuildSessionFactory();\n\n");
_sessionFactory = cfg.BuildSessionFactory();
}




/// <summary> Création et enregistrement de 'n' commandes aléatoires. </summary>
public void GénèreDesUtilisateursAléatoires(int n)
{
NHibernate.ISession session = null;
NHibernate.ITransaction transaction = null;

System.Console.Out.WriteLine("\nEnregistrement de " + n + " commandes aléatoires...");
try
{
session = _sessionFactory.OpenSession();
transaction = session.BeginTransaction();

for(int i=0; i<n; i++)
{
Users u = new Users();

u.Nom = "Ben Ahmed";
u.Prenom = "Raed";
session.Save(u);
}

// Envoie les modifications (=> Génère et exécute les requêtes)
transaction.Commit();
}
catch
{
if(transaction != null)
transaction.Rollback(); // Erreur => nous DEVONT annuler les modifications
throw; // Ici, nous renvoyons la même exception pour qu'elle soit gérée (imprimée)
}
finally
{
if(session != null)
session.Close();
}
}


/// <summary> Pour chaque commande (dans la base de données), impression de son identificateur, sa date et le nom du produit. </summary>
public void AfficheToutesLesUtilisateurs()
{
using(NHibernate.ISession session = _sessionFactory.OpenSession())
{
System.Collections.IList résultat = session.Find("select u.Id, u.Nom, u.Prenom from Users u");

System.Console.Out.WriteLine("\n" + résultat.Count + " utilisateurs trouvées!");
foreach(System.Collections.IList l in résultat)
System.Console.Out.WriteLine(" Utilisateur N°"
+ l[0] + ", Nom=" + l[1] + ", Prernom=" + l[2]);
} // finally { session.Close(); } est réalisé par using()
}


/// <summary> Renvoi de la commande N° 'id'. </summary>
public Users ChargeUnUtilisateur(int id)
{
System.Console.Out.WriteLine("\nChargement de l'Utilisateur N° " + id + "...");
using(NHibernate.ISession session = _sessionFactory.OpenSession())
return session.Load(typeof(Users), id) as Users;
// finally { session.Close(); } est réalisé par using()
}


/// <summary> Affichage de la commande sur la console. </summary>
public void Affiche(Users u)
{
System.Console.Out.WriteLine("\nUser N°"
+ u.Id + "\n Nom = " + u.Nom + "\n Prenom=" + u.Prenom);
}


/// <summary> Insertion ou mise à jour de la commande (dans la base de données). </summary>
public void Sauvegarde(Users u)
{
NHibernate.ISession session = null;
NHibernate.ITransaction transaction = null;

// Voici comment la Session décide d'insérer ou de mettre à jour; utilisez NHMA.Id(UnsavedValue=x) pour remplacer 0
System.Console.Out.Write("\n" + (u.Id == 0 ? "Insertion" : "Mise à jour"));
System.Console.Out.WriteLine(" l'Utilisateur N° " + u.Id + "...");
try
{
session = _sessionFactory.OpenSession();
transaction = session.BeginTransaction();

// La Session NHibernate vas automatiquement détecter si elle doit effectuer un INSERT ou un UPDATE
session.SaveOrUpdate(u);

// Envoie les modifications (=> Génère et exécute les requêtes)
transaction.Commit();
}
catch
{
if(transaction != null)
transaction.Rollback(); // Erreur => nous DEVONT annuler les modifications
throw; // Ici, nous renvoyons la même exception pour qu'elle soit gérée (imprimée)
}
finally
{
if(session != null)
session.Close();
}
}


/// <summary> Effacement de la commande (dans la base de données). </summary>
public void Détruit(int id)
{
NHibernate.ISession session = null;
NHibernate.ITransaction transaction = null;

System.Console.Out.WriteLine("\nEffacement de l'Utilisateur N° " + id + "...");
try
{
session = _sessionFactory.OpenSession();
transaction = session.BeginTransaction();

session.Delete("from Users where u.Id = :Id", id, NHibernate.NHibernateUtil.Int32);

// Envoie les modifications (=> Génère et exécute les requêtes)
transaction.Commit();
}
catch
{
if(transaction != null)
transaction.Rollback(); // Erreur => nous DEVONT annuler les modifications
throw; // Ici, nous renvoyons la même exception pour qu'elle soit gérée (imprimée)
}
finally
{
if(session != null)
session.Close();
}
}


}
}


Users.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NHibernate.Mapping.Attributes;
namespace NHibernate_testC1.Domain
{
[NHibernate.Mapping.Attributes.Class(Table = "Users")]
class Users
{
private int _id = 0;
private string _Nom;
private string _Prenom;

[NHibernate.Mapping.Attributes.Id(Name = "Id")]
[NHibernate.Mapping.Attributes.Generator(1, Class = "native")]
public virtual int Id
{
get { return _id; }
}

[NHibernate.Mapping.Attributes.Property]
public virtual string Nom
{
get { return _Nom; }
set { _Nom = value; }
}


[NHibernate.Mapping.Attributes.Property]
public virtual string Prenom
{
get { return _Prenom; }
set { _Prenom = value; }
}
public Users(string nom, string prenom)
{
this.Nom = nom;
this.Prenom = prenom; // Ne pas utiliser _prenom

}
public Users()
{
}



}
}


Users.hbm.XML
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="NHibernate_testC1"
namespace="NHibernate_testC1.Domain">
<!-- more mapping info here -->
<class name="Users" table="Users" dynamic-update="true">
<id name="ID" type="Int32">
<generator class="identity" />
</id>
<property name="Nom" column="Nom" type="String"/>
<property name="Prenom" column="Prenom" type="String"/>

</class>
</hibernate-mapping>

Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using log4net.Config;

using NHibernate_testC1.Domain;
namespace NHibernate_testC1
{
[assembly: log4net.Config.XmlConfigurator(Watch = true)]

class Program
{
static void Main(string[] args)
{
System.Console.Out.WriteLine("L'application démarre...\n");

try
{
string baseDeDonnées = System.Configuration.ConfigurationSettings.AppSettings["BaseDeDonnées"];
string chaîneDeConnexion = System.Configuration.ConfigurationSettings.AppSettings[baseDeDonnées + ".ChaîneDeConnexion"];

DBase_connection DB = new DBase_connection(baseDeDonnées, chaîneDeConnexion);
DB.GénèreDesUtilisateursAléatoires(3);

DB.AfficheToutesLesUtilisateurs();


}
catch (System.Exception ex)
{
System.Console.Error.WriteLine("\n\n" + ex.ToString() + "\n\n");
System.Threading.Thread.Sleep(30000);
}
finally
{
System.Console.Out.WriteLine("\nL'application est fermée!\n");
System.Threading.Thread.Sleep(30000);
}


}
}
}


S'il vous plais je suis en attente répndez moi par la correction et ce ke je dois faire.
Merci ;)


Cette discussion est classée dans : sql, nhibernate, serer


Répondre à ce message

Sujets en rapport avec ce message

nhibernate et base de données [ par laymouna98 ] Bonjour désolée, j'ai posée cet question pas mal de fois, mais par ce que je suis vraiment besoin de votre aides. j'ai travaillée une application NHibernate et sql server 2005 [ par ymas00 ] Bonjour, Je veux savoir si NHibernate peut il créer automatiquement les tables dans la base de données après la génération ??? j'ai trouvé pas mal d' Linq to Sql, problème de maj avec paramètre [ par Achm ] Bonjour ! J'ai un petit souci pour mettre à jours mes données : J'ai une fonction : [code=cs]public void UpdateData(Guid id, string nom) { Decimal, float, double... en C# avec SQL Server [ par 0nn2belle ] Bonsoir tout le monde, Je suis débutante en c# et je suis confrontée à un problème que j'ai déjà rencontré, mais... en JAVA ! Et je suis perdue dans m Importation/Exportation base de données SQL via Webservices. [ par S1rK ] Bonjour à tous, Dans le cadre d'un projet visant à synchronisé les bases de données d'un PDA(SQL CE) avec un PC(SQL) je souhaite utilisé les « web se Rechercher dans une base de donnée SQL [ par milawadie ] Bonjour tout le monde,je suis entrain de développer mon projet fin d'étude avec c Sharp,je cherche le code source du bouton (Rechercher) qui me permet Requête SQL Comparative [ par BergerDoc ] Bonjour, je cherche à effectuer une requete sur une base de donnée Access qui compare la date actuelle entre deux dates entrées dans la base : dateHe Comment afficher résultats d'une requête [ par hollowman010 ] Bonjour à tous, Je suis venu vous demandez de l'aide pour un "petit" problème. [i][b][u]Présentation générale :[/u][/b][/i] Une base de donné application multiposte avec SQL Server Express [ par Yoshifumi ] Bonjour à tous, Je développe actuellement une application en C# avec Visual Studio 2008 (débutant). Ce programme utilise une base de données SQL Serv Création des tables SQL Server à partir des DataTable [ par bellak ] Bonjour a tous , SVP , J'ai des DataTable que j les crée dynamiquement par code et je voudrais créer des tables base de données SQL Server, ce qui co


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,624 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales