All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
ASP.NET2.0学习-
实例分享:自己开发的自定义分页控件_[Asp.Net教程]
C#中Panel控件应用实例
Sql,Server数据库定时自动备份_[SQL,Server教程]
C#教程:将应用软件的使用次数写入注册表
ASP.NET技巧:使用Gridview绑定数据库中的图片_[Asp.Net教程]
SQL,SERVER安全的相关T-SQL代码_[SQL,Server教程]
Web开发常用命名空间和类介绍(.net,framework)_[Asp.Net教程]
asp.net得到HTML,meta标记的内容_[Asp.Net教程]
向普通人加密,用PHP程序保护数据_php资料_编程技术
Reading number is top 10 pictures
China telecom 114 spokesman MeiYanXu2
修电脑也有这么漂亮的美女
Sora aoi mirror memorial classics3
漂亮脸蛋魔鬼身材1
The world first motorcycle will be auctioned for 21000 pounds
HongMenYan premiere XinLiangGong clairvoyant outfit PK YiFeiLiu2
中国女孩大胆自拍,显露完美身材
So beauty, will let you spray blood7
The most popular girls welcome eggplant
如果我是导演...
Download software ranking
Call Of Duty5
圣殿祭司的ASP.NET.2.0.开发详解-使用C#
Tram sex maniac 2 (H) rar bag12
Prostitutes diary
The Bermuda triangle1
Boxer's Top ten classic battle7
Visual C++界面编程技术
C++编程教程第三版
Eclipse 4.2.2 For Win64
Professional killers2 for Android
delv published in(发表于) 2014/1/6 9:12:08 Edit(编辑)
存储过程中调用C#写的DLL_[Asp.Net教程]

存储过程中调用C#写的DLL_[Asp.Net教程]

存储过程中调用C#写的DLL_[Asp.Net教程]

最近一个项目中遇到一个转换FileTime的问题.时间是在C#中用DateTime.ToFileTime写入数据库中,这在存储过程中判断年和季度成了问题,怎么样才能把时间转换为正常的时间格式呢?Sql server中又没有FromFileTime对应的方法?其实很简单用C#写一个转换时间的Dll然后在存储过程中调用就可以了.
转换时间的类如下:
[Guid("729ba6af-3eff-4b75-b43b-d951a190dbe6")]
public class FileTimeConvert
{
public FileTimeConvert()
{
}

public string ConvertTime(long fileTime)
{
string retVal = string.Empty;
if (fileTime > 0)
{
DateTime dt = DateTime.FromFileTime(fileTime);
retVal = dt.ToString();
}
return retVal;
}
}
注意这个Guid我们在存储过程中引用要用到这个Guid.


为方便可能在多处需要调用,我们专门写一个存储过程
如下:


CREATE PROCEDURE spu_ConvertFileTimeToNormal
@ticks BIGINT,
@returnval varchar(40) output
AS


DECLARE @src varchar(255)
DECLARE @desc varchar(255)



DECLARE @object int
DECLARE @hr int
EXEC @hr = sp_OACreate '{729ba6af-3eff-4b75-b43b-d951a190dbe6}',@object OUT


IF @hr = 0 --如果创建对象成功
BEGIN
EXEC @hr = sp_OAMethod @object,'ConvertTime',@returnval OUT,@ticks
print @returnval
print @hr
if(@hr <> 0)
BEGIN
EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT
SELECT hr=convert(varbinary(4),@hr), Source=@src, Description=@desc
END

END


ELSE
BEGIN
--print @hr
print 'Create Object ConvertTime failed'

EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT
SELECT hr=convert(varbinary(4),@hr), Source=@src, Description=@desc
RETURN
END


EXEC @hr = sp_OADestroy @object


IF @hr <> 0
BEGIN
EXEC sp_OAGetErrorInfo @object
RETURN
END


GO


这个时候我们还差最后一步注册DLL了
在.net 命令行下输入 regasm -codebase path


好了,现在我们就可以在其他存储过程中调用这个存储过程返回正常的时间了.
给个小例子:
EXEC spu_ConvertFileTimeToNormal @CreateTime,@NormalTime OUT
@CreateTime:FileTime格式
@NormalTime :正常的时间格式字符串(spu_ConvertFileTimeToNormal 存储过程返回值)


这个简单的小例子说明了我们怎么样在存储过程中调用DLL
是不是你解决问题又多了一个选择了呢?


来源:网络







添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.