|
在项目的开发中使用Remoting,并且所有的数据请求服务都是通过Remoting完成的,所以自然就在其中到了传递参数的存储过程,在业务逻辑中把参数构建好后传递到Remoting服务端,在取出存储过程的参数时报错,具体错误不记得了,自己尝试了各种方法也不行,上网资讯也没有结果,最后变通了一下,问题解决了,例子如下: TbrLinux联盟 TbrLinux联盟 以下部分为客户调用端 TbrLinux联盟 TbrLinux联盟 TbrLinux联盟 TbrLinux联盟 1//先声明参数 TbrLinux联盟 2 private const string PARAM_GUID = "@GUID"; TbrLinux联盟 3 private const string PARAM_VGA_TREEGUID = "@VGATreeGUID"; TbrLinux联盟 4 private const string PARAM_MB_TREEGUID = "@MBTreeGUID"; TbrLinux联盟 5 TbrLinux联盟 6 public static string GetProductTypeByGUID(string GUID, String VGATreeID, String MbTreeID) TbrLinux联盟 7 { TbrLinux联盟 8 try TbrLinux联盟 9 { TbrLinux联盟 10 int lcID = Thread.CurrentThread.CurrentUICulture.LCID; TbrLinux联盟 11 TbrLinux联盟 12 BaseModel bt = new BaseModel(); TbrLinux联盟 13 TbrLinux联盟 14 //构建一个哈希表,把参数依次压入 TbrLinux联盟 15 Hashtable parames = new Hashtable(); TbrLinux联盟 16 parames.Add(PARAM_PROGUID, GUID); TbrLinux联盟 17 parames.Add(PARAM_VGA_TREEGUID, VGATreeID); TbrLinux联盟 18 parames.Add(PARAM_MB_TREEGUID, MbTreeID); TbrLinux联盟 19 TbrLinux联盟 20 //把存储过程名称和带参数的哈希表传入 TbrLinux联盟 21 DataAccess.DataBase.RunProcedureDataSet(lcID, "GetProductTypeByTreeID", parames, ref bt); TbrLinux联盟 22 TbrLinux联盟 23 return bt.Rows[0]["ProductType"].ToString(); TbrLinux联盟 24 } TbrLinux联盟 25 catch (Exception ex) TbrLinux联盟 26 { TbrLinux联盟 27 CommFunction.WriteErrorLogFile("public static string GetProductTypeByGUID(stirng GUID, String VGATreeID, String MbTreeID)出错:" + ex.Message); TbrLinux联盟 28 return "Other"; TbrLinux联盟 29 } TbrLinux联盟 30 } TbrLinux联盟 31 TbrLinux联盟 32 TbrLinux联盟 TbrLinux联盟 TbrLinux联盟 以下为服务端: TbrLinux联盟 TbrLinux联盟 TbrLinux联盟 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) TbrLinux联盟 2 // ----------------------------------------------------------------------------------------- TbrLinux联盟 3 public void Query(int lcid, string SQLString, Hashtable cmdHashtable, ref BaseModel baseModel) TbrLinux联盟 4 { TbrLinux联盟 5 if (!CheckRemotingClient()) TbrLinux联盟 6 { TbrLinux联盟 7 return; TbrLinux联盟 8 } TbrLinux联盟 9 Console.WriteLine(DateTime.Now.ToString() + "调用了Query(" + lcid.ToString() + ", string SQLString, Hashtable cmdHashtable, ref BaseModel baseModel)"); TbrLinux联盟 10 int i = cmdHashtable.Count; TbrLinux联盟 11 //以下构造存储过程参数 TbrLinux联盟 12 SqlParameter[] cmdParms = new SqlParameter[i]; TbrLinux联盟 13 int j = 0; TbrLinux联盟 14 foreach (DictionaryEntry de in cmdHashtable) TbrLinux联盟 15 { TbrLinux联盟 16 cmdParms[j] = new SqlParameter(de.Key.ToString(), de.Value); TbrLinux联盟 17 j++; TbrLinux联盟 18 } TbrLinux联盟 19 Colorful.DBUtility.DbHelperSQL.Query(lcid, SQLString, cmdParms, ref baseModel); TbrLinux联盟 20 } TbrLinux联盟 21 // ----------------------------------------------------------------------------------------- TbrLinux联盟 22 #endregion TbrLinux联盟
Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论 |
|