论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > Asp.net教程
Tag:静态页面,treeview,gridview,repeater,dataset,sqldatareader,ado.net,上传,三层,ajax,xml,留言本,新闻发布,商城,注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,触发器,socket,form认证,登录,视频教程

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

文章类别:Asp.net | 发表日期:2008-10-5 22:09:34

   在项目的开发中使用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

视频教程列表
文章教程搜索
 
Asp.net推荐教程
Asp.net热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058