La comunicación remota se utiliza en el desarrollo del proyecto y todos los servicios de solicitud de datos se completan a través de la comunicación remota, por lo que, naturalmente, existe un procedimiento almacenado para pasar parámetros. Una vez que los parámetros se construyen en la lógica empresarial, se pasan al servidor remoto y luego. eliminado Ocurrió un error al configurar los parámetros del procedimiento almacenado. No recuerdo el error específico. Probé varios métodos pero no funcionó. También busqué en línea y no encontré resultados. y el problema se resolvió. El ejemplo es el siguiente:
La siguiente parte es la persona que llama.
1//Declarar parámetros primero
2 cadena constante privada PARAM_GUID = "@GUID";
3 cadena constante privada PARAM_VGA_TREEGUID = "@VGATreeGUID";
4 cadena constante privada PARAM_MB_TREEGUID = "@MBTreeGUID";
5
6 cadena estática pública GetProductTypeByGUID (cadena GUID, cadena VGATreeID, cadena MbTreeID)
7 {
8 intento
9 {
10 int lcID = Thread.CurrentThread.CurrentUICulture.LCID;
11
12 BaseModel bt = nuevo BaseModel();
13
14 //Construya una tabla hash y envíe los parámetros en secuencia
15 parámetros de Hashtable = nueva Hashtable();
16 parámetros.Add(PARAM_PROGUID, GUID);
17 parámetros.Add(PARAM_VGA_TREEGUID, VGATreeID);
18 parámetros.Add(PARAM_MB_TREEGUID, MbTreeID);
19
20 //Pase el nombre del procedimiento almacenado y la tabla hash con parámetros
21 DataAccess.DataBase.RunProcedureDataSet(lcID, "GetProductTypeByTreeID", parámetros, ref bt);
Veintidós
23 return bt.Rows[0]["ProductType"].ToString();
veinticuatro}
25 capturas (Excepción ex)
26 {
27 CommFunction.WriteErrorLogFile ("cadena estática pública GetProductTypeByGUID (guid agitado, cadena VGATreeID, cadena MbTreeID) error: " + ex.Message);
28 devuelven "Otro";
29 }
30}
31
32
El siguiente es el lado del servidor:
1Consulta pública vacía (int lcid, cadena SQLString, Hashtable cmdHashtable, referencia BaseModel baseModel)#región Consulta pública vacía (int lcid, cadena SQLString, Hashtable cmdHashtable, referencia BaseModel baseModel)
2 // ----------------------------------------------- --- ------------------------------------
3 consulta pública vacía (int lcid, cadena SQLString, Hashtable cmdHashtable, referencia BaseModel baseModel)
4 {
5 si (!CheckRemotingClient())
6 {
7 regreso;
8}
9 Console.WriteLine(DateTime.Now.ToString() + "Query(" + lcid.ToString() + ", cadena SQLString, Hashtable cmdHashtable, ref BaseModel baseModel)");
10 int i = cmdHashtable.Count;
11 // Lo siguiente construye los parámetros del procedimiento almacenado
12 SqlParameter[] cmdParms = nuevo SqlParameter[i];
13int j = 0;
14 foreach (Entrada del diccionario en cmdHashtable)
15 {
16 cmdParms[j] = nuevo SqlParameter(de.Key.ToString(), de.Value);
17j++;
18}
19 Colorful.DBUtility.DbHelperSQL.Query(lcid, SQLString, cmdParms, ref baseModel);
20}
veintiuno // ---------------------------------------------- - ------------------------------------
22 #endregion
http://www.cnblogs.com/blockhead/archive/2006/08/17/479720.html