当前位置:编程学习 > C#/ASP.NET >>

哪位 有 sql server 调用 .net 中 非静态方法 的方法?

我想在sql server 中调用 c#类库中的 非静态方法,网上一些 

方法,我试了,最后都有错误:
create error 0x80131700 ODSOLE Extended Procedure NULL
method error 0x80042725 ODSOLE Extended Procedure sp_OAMethod 用法: ObjPointer int IN, MethodName varchar IN [, @returnval <any> OUT [, additional IN, OUT, or BOTH params]]
description error 0x80042728 ODSOLE Extended Procedure sp_OADestroy 用法: ObjPointerToBeDestroyed int IN。

不知道怎样调用 c# 类库中的 非静态方法了。
请高手帮忙!
--------------------编程问答-------------------- 我试过的是下面的方法,最后在 sql server 中执行 都出错
http://www.sudu.cn/info/html/edu/20071227/49802.html 
--------------------编程问答-------------------- 非静态方法需要实例化对象啊采用使用啊 --------------------编程问答-------------------- 还有下面这个方法,也会出错 


1:新建一个CS类库 
注:类库要使用签名,编译成强命名的程序集。在ASSMBILY中最好手工将comvisible设为TRUE.

2、拷贝编译好的DLL文件到C:\WINDOWS\system32下  (此步路径需为系统path中的路径)
3、注册该类库:打开 SDK 命令提示 工具,输入 regasm /tlb: C:\WINDOWS\system32\BiSoftWare.tlb C:\WINDOWS\system32\BiSoftWare.dll  /codebase 回车(此步骤不能简为 regasm C:\WINDOWS\system32\BiSoftWare.dll,否则在SQL SERVER中会提示“系统找不到”)
4、打开SQL SERVER 新建存储过程


在网上找出错答案也找不到,希望有遇到过这种情况或知道解决方法的人帮帮忙 --------------------编程问答-------------------- 非静态
Class1 c=new Class1();
c.方法(); --------------------编程问答--------------------
引用 2 楼 net_lover 的回复:
非静态方法需要实例化对象啊采用使用啊



类库注册以后在 存储过程中调用,你看有什么不对吗?


set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go




ALTER procedure  [dbo].[mydll2901]

as

DECLARE @object int 
DECLARE @hr int 
declare @return varchar(255)
declare @src varchar(255),@desc varchar(255)

 

EXEC @hr = sp_OACreate 'mydll2901.Class1', @object OUT 
if @hr<>0
begin
exec sp_OAGetErrorInfo @object,@src OUT,@desc OUT
select 'create error',hr=convert(varbinary(4),@hr),Source=@src,Description=@desc
--return
end



EXEC @hr = sp_OAMethod @object,'hello',@return OUT
if @hr<>0
begin
exec sp_OAGetErrorInfo @object,@src OUT,@desc OUT
select 'method error',hr=convert(varbinary(4),@hr),Source=@src,description=@desc
end
print @return

EXEC @hr = sp_OADestroy @object
if @hr<>0
begin
exec sp_OAGetErrorInfo @object,@src OUT,@desc OUT
select 'description error',hr=convert(varbinary(4),@hr),Source=@src,description=@desc
end










--------------------编程问答--------------------
引用 4 楼 wuyq11 的回复:
非静态
Class1 c=new Class1();
c.方法();


我在sql server 中调用
--------------------编程问答-------------------- 用静态方法封装一下呢? --------------------编程问答-------------------- 我类里面要调用 他人的webservice里的非静态方法,所以不好改成静态的吧? 
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,