L'accès à distance est utilisé dans le développement du projet et tous les services de demande de données sont effectués via l'accès à distance. Il existe donc naturellement une procédure stockée pour transmettre les paramètres. Une fois les paramètres construits dans la logique métier, ils sont transmis au serveur Remoting, puis. supprimé. Une erreur s'est produite lors de la définition des paramètres de la procédure stockée. Je ne me souviens pas de l'erreur spécifique, mais cela n'a pas fonctionné. J'ai également cherché en ligne et je n'ai trouvé aucun résultat. et le problème a été résolu. L'exemple est le suivant :
La partie suivante est l'appelant client.
1//Déclarez d'abord les paramètres
2 chaîne const privée PARAM_GUID = "@GUID" ;
3 chaîne const privée PARAM_VGA_TREEGUID = "@VGATreeGUID";
4 chaîne const privée PARAM_MB_TREEGUID = "@MBTreeGUID";
5
6 chaîne statique publique GetProductTypeByGUID (string GUID, String VGATreeID, String MbTreeID)
7 {
8 essayer
9 {
10 int lcID = Thread.CurrentThread.CurrentUICulture.LCID ;
11
12 BaseModel bt = new BaseModel();
13
14 //Construire une table de hachage et pousser les paramètres dans l'ordre
15 Paramètres de la table de hachage = new Hashtable();
16 paramètres.Add(PARAM_PROGUID, GUID);
17 paramètres.Add(PARAM_VGA_TREEGUID, VGATreeID);
18 paramètres.Add(PARAM_MB_TREEGUID, MbTreeID);
19
20 //Transmettre le nom de la procédure stockée et la table de hachage avec les paramètres
21 DataAccess.DataBase.RunProcedureDataSet(lcID, "GetProductTypeByTreeID", paramètres, réf bt);
vingt-deux
23 return bt.Rows[0]["ProductType"].ToString();
vingt-quatre }
25 prises (Exception ex)
26 {
27 CommFunction.WriteErrorLogFile("chaîne statique publique GetProductTypeByGUID(stirng GUID, String VGATreeID, String MbTreeID) erreur : " + ex.Message);
28 renvoie "Autre" ;
29 }
30}
31
32
Voici le côté serveur :
1requête public void (int lcid, chaîne SQLString, Hashtable cmdHashtable, ref BaseModel baseModel)#region public void Query (int lcid, chaîne SQLString, Hashtable cmdHashtable, ref BaseModel baseModel)
2 // ----------------------------------------------- --- ------------------------------------------
3 Requête public void (int lcid, chaîne SQLString, Hashtable cmdHashtable, ref BaseModel baseModel)
4 {
5 si (!CheckRemotingClient())
6 {
7 retour;
8}
9 Console.WriteLine(DateTime.Now.ToString() + "Query(" + lcid.ToString() + ", string SQLString, Hashtable cmdHashtable, ref BaseModel baseModel)");
10 int je = cmdHashtable.Count;
11 //Ce qui suit construit les paramètres de la procédure stockée
12 SqlParameter[] cmdParms = new SqlParameter[i];
13 entier j = 0 ;
14 foreach (DictionaryEntry dans cmdHashtable)
15 {
16 cmdParms[j] = new SqlParameter(de.Key.ToString(), de.Value);
17 j++ ;
18}
19 Colorful.DBUtility.DbHelperSQL.Query(lcid, SQLString, cmdParms, ref baseModel);
20}
vingt-et-un // ---------------------------------------------- - ------------------------------------------
22 #endregion
http://www.cnblogs.com/blockhead/archive/2006/08/17/479720.html