当前位置: 代码迷 >> Sql Server >> 为了便利.net页面执行,普通存储过程和CLR存储过程那个更方便调用
  详细解决方案

为了便利.net页面执行,普通存储过程和CLR存储过程那个更方便调用

热度:24   发布时间:2016-04-24 10:07:22.0
为了方便.net页面执行,普通存储过程和CLR存储过程那个更方便调用?
开发的一个.net页面绑定SqlServer2008t数据库里的某张表,这张表的数据要从另外两个oralce数据库中select,处理后再insert进来,已经配好了 连 oralce数据库的dblink,也在查询窗口里测试过了,OK的,想把代码写成一个存储过程,这样页面调用时是否更简单呢?
请问是写个普通的存储过程还是新建个CLR存储过程更方便网页调用呢?大家有没有.net页面执行存储过程的例子?
我把代码附上,这个是可以成功执行的:
insert into cldt.dbo. tbl_temp(shr,pm,sfzm,dtzm,ch,fyym,dfrq,dfcc,wz)
SELECT     A.shr, A.pm, A.fzm, B.czmc, A.ch, A.fyym, A.ddrq, A.ddcc, A.gdm
FROM         SHXC..XCSHARE.V_B_GDSYCLK AS A CROSS JOIN
                      cldt.dbo.Tbl_CZ AS B
WHERE     (A.dzh = 'QEH') AND (A.shr LIKE '%巨化%') AND (A.zmlm = B.zmlm) OR
                      (A.dzh = 'QEH') AND (A.shr LIKE ' % 元立 % ') AND (A.zmlm = B.zmlm)
------解决方案--------------------
个人建议存储过程,CLR毕竟算是SQL Server外部应用,SQL Server对其管控比较困难,一些错误捕获、性能问题都不如内置的存储过程好
------解决方案--------------------
1.用存储过程
2.到网上去找DbHelpersql.cs 这类,里面有各种sql执行存储过程的方法,带参数不带的。很简单
------解决方案--------------------
用存储过程会更好
存储过程执行也可以用sql语句的,跟你上面的一样了,只是sql语句是"dbo.sp名字 参数,....."

        DbHelper db = null;
        try
        {
            db = DbFactory.CreateDb();
            db.CmdType = CmdType.SQL;
            string sSQL = string.Empty;

            sSQL = "dbo.uspAtt_LeaveChk " + Utility.Quote(this.Imported_By.Text);
            db.ExecNonQuery(sSQL);
  相关解决方案