Bei der Entwicklung des Projekts wird Remoting verwendet, und alle Datenanforderungsdienste werden über Remoting abgeschlossen. Daher gibt es natürlich eine gespeicherte Prozedur zum Übergeben von Parametern. Nachdem die Parameter in der Geschäftslogik erstellt wurden, werden sie an den Remoting-Server übergeben Beim Festlegen der Parameter der gespeicherten Prozedur ist ein Fehler aufgetreten. Ich habe verschiedene Methoden ausprobiert, aber ich habe keine Ergebnisse gefunden und das Problem wurde gelöst. Das Beispiel ist wie folgt:
Der folgende Teil ist der Client-Aufrufer.
1//Zuerst Parameter deklarieren
2 private const string PARAM_GUID = "@GUID";
3 private const string PARAM_VGA_TREEGUID = "@VGATreeGUID";
4 private const string PARAM_MB_TREEGUID = "@MBTreeGUID";
5
6 öffentlicher statischer String GetProductTypeByGUID(string GUID, String VGATreeID, String MbTreeID)
7 {
8 Versuchen
9 {
10 int lcID = Thread.CurrentThread.CurrentUICulture.LCID;
11
12 BaseModel bt = new BaseModel();
13
14 //Erstellen Sie eine Hash-Tabelle und übertragen Sie die Parameter nacheinander
15 Hashtable-Parameter = new Hashtable();
16 parames.Add(PARAM_PROGUID, GUID);
17 parames.Add(PARAM_VGA_TREEGUID, VGATreeID);
18 parames.Add(PARAM_MB_TREEGUID, MbTreeID);
19
20 //Übergeben Sie den Namen der gespeicherten Prozedur und die Hash-Tabelle mit Parametern
21 DataAccess.DataBase.RunProcedureDataSet(lcID, "GetProductTypeByTreeID", parames, ref bt);
zweiundzwanzig
23 return bt.Rows[0]["ProductType"].ToString();
vierundzwanzig }
25 Fang (Ausnahme ex)
26 {
27 CommFunction.WriteErrorLogFile("public static string GetProductTypeByGUID(stirng GUID, String VGATreeID, String MbTreeID) error: " + ex.Message);
28 Rückgabe „Andere“;
29 }
30}
31
32
Das Folgende ist die Serverseite:
1public void Query(int lcid, string SQLString, Hashtable cmdHashtable, ref BaseModel baseModel)#region public void Query(int lcid, string SQLString, Hashtable cmdHashtable, ref BaseModel baseModel)
2 // -------------------------------- --- ------------------------------------------
3 public void Query(int lcid, string SQLString, Hashtable cmdHashtable, ref BaseModel baseModel)
4 {
5 if (!CheckRemotingClient())
6 {
7 Rückkehr;
8}
9 Console.WriteLine(DateTime.Now.ToString() + "Query(" + lcid.ToString() + ", string SQLString, Hashtable cmdHashtable, ref BaseModel baseModel)");
10 int i = cmdHashtable.Count;
11 // Im Folgenden werden die Parameter der gespeicherten Prozedur erstellt
12 SqlParameter[] cmdParms = new SqlParameter[i];
13 int j = 0;
14 foreach (DictionaryEntry in 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}
einundzwanzig // ------------------------------- - ------------------------------------------
22 #endregion
http://www.cnblogs.com/blockhead/archive/2006/08/17/479720.html