WEB开发网
开发学院WEB开发ASP.NET 如何解决Remoting无法传输存储过程参数的问题 阅读

如何解决Remoting无法传输存储过程参数的问题

 2006-08-18 17:14:18 来源:WEB开发网   
核心提示: 在项目的开发中使用Remoting,并且所有的数据请求服务都是通过Remoting完成的,如何解决Remoting无法传输存储过程参数的问题,所以自然就在其中到了传递参数的存储过程,在业务逻辑中把参数构建好后传递到Remoting服务端,最后变通了一下,问题解决了,在取出存储过程的参数时报错,具体错误不记得了

  在项目的开发中使用Remoting,并且所有的数据请求服务都是通过Remoting完成的,所以自然就在其中到了传递参数的存储过程,在业务逻辑中把参数构建好后传递到Remoting服务端,在取出存储过程的参数时报错,具体错误不记得了,自己尝试了各种方法也不行,上网资讯也没有结果,最后变通了一下,问题解决了,例子如下:

以下部分为客户调用端

  

 1//先声明参数
 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     public static string GetProductTypeByGUID(string GUID, String VGATreeID, String MbTreeID)
 7     {
 8       try
 9       {
10         int lcID = Thread.CurrentThread.CurrentUICulture.LCID;
11
12         BaseModel bt = new BaseModel();
13
14         //构建一个哈希表,把参数依次压入
15         Hashtable parames = new Hashtable();
16         parames.Add(PARAM_PROGUID, GUID);
17         parames.Add(PARAM_VGA_TREEGUID, VGATreeID);
18         parames.Add(PARAM_MB_TREEGUID, MbTreeID);
19
20         //把存储过程名称和带参数的哈希表传入
21         Dataaccess.DataBase.RunProcedureDataSet(lcID, "GetProductTypeByTreeID", parames, ref bt);
22
23         return bt.Rows[0]["ProductType"].ToString();
24       }
25       catch (Exception ex)
26       {
27         CommFunction.WriteErrorLogFile("public static string GetProductTypeByGUID(stirng GUID, String VGATreeID, String MbTreeID)出错:" + ex.Message);
28         return "Other";
29       }
30     }
31
32


以下为服务端:
  

 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         return;
 8       }
 9       Console.WriteLine(DateTime.Now.ToString() + "调用了Query(" + lcid.ToString() + ", string SQLString, Hashtable cmdHashtable, ref BaseModel baseModel)");
10       int i = cmdHashtable.Count;
11       //以下构造存储过程参数
12       SqlParameter[] cmdParms = new SqlParameter[i];
13       int j = 0;
14       foreach (DictionaryEntry de 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     }
21     // -----------------------------------------------------------------------------------------
22     #endregion

http://www.cnblogs.com/blockhead/archive/2006/08/17/479720.html

Tags:如何 解决 Remoting

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接