写点什么

在.NET 语言中封装存储过程

  • 2009-06-04
  • 本文字数:964 字

    阅读完需:约 3 分钟

在.NET 中针对已有的存储过程创建封装函数是相当困难的一件事。存储过程有特定的调用约定,这些约定在.NET Framework 中并不常用。它们包含以下内容:

  • Pass by Reference Parameters
  • Output Parameters
  • Optional Parameters with default values
  • All parameters are nullable
  • 用引用参数传递值
  • 输出参数
  • 带默认值的可选参数
  • 所有参数都是可空的

目前为止,完全映射并不可行。C#当前并不支持可选参数,只是针对所缺的参数使用占位符。VB 能够处理可选参数,但不能处理那些为空值的参数。例如,你不可以这样编写代码:

复制代码
<span>Function </span>FindCustomer(<span>Optional ByVal </span>firstName <span>As String </span>= <span>Nothing</span>, _
<span>Optional ByVal </span>lastName <span>As String </span>= <span>Nothing</span>, _
<span>Optional ByVal </span>zipCode <span>As Integer</span>? = <span>Nothing</span>) <span>As </span>DataTable

在调用带有多个可选参数的搜索式存储过程时,这是一个需要重点关注的问题。使用 C# 4 和 VB 10,最后的漏洞已经解决。C#现在支持可选值,两种语言在和可空结构打交道的时候,都可以使用可选类型。

特性

C#

映射

VB

映射

F#

映射

用引用参数传递值

1

ref type [param]

7

ByRef [param] As [type]

4

[param] : [type] byref

输出类型

1

out type [param]

7

ByRef [param] As [type]

4

[param] : [type] byref

可选字符串

4

string param = [default]

7

Optional [param] As String = [default]

N/A

4

Normal functions do not support optional parameters.

一般函数不支持可选参数

Method functions use: ?[param] : [type]

方法函数用:?[param] : [type]

其它的可选值

4

[type] param = [default]

7

Optional param As [type] = [default]

可空字符串

1

string param

7

param as String

4

[param] : string

[param] : string option

其它的空值参数

2

[type]? param

8

param As Nullable(of

[type])

4

[param] : Nullable<[type]>

[param] : [type] option

9

param as [type]?

可选的其它可空参数

4

[type]? param = [default]

10

Optional param As [type]? = [default]

4

?[param] : Nullable<[type]>

?[param] : [type] option

注意:F#不支持返回多个值,所以这种支持是有限的。不使用 ByRef 语法是不能更新多个任意的可变值。

查看英文原文: Wrapping Stored Procedures in .NET Languages

2009-06-04 10:431760
用户头像

发布了 87 篇内容, 共 21.9 次阅读, 收获喜欢 1 次。

关注

评论

发布
暂无评论
发现更多内容

中昊芯英入选工信部“人工智能赋能新型工业化典型应用案例”

科技热闻

拦截烂SQL,解读GaussDB(DWS)查询过滤器过滤规则原理

华为云开发者联盟

数据库 GaussDB(DWS) #SQL

MouseBoost PRO for Mac 鼠标右键助手专业版下载

小玖_苹果Mac软件

NAS极速远程访问!贝锐花生壳推出飞牛fnOS专属内网穿透服务

贝锐

私有云 内网穿透

如何运用获得京东商品详情API接口搬运商品到自己的电商平台?(一篇文章全搞定)

科普小能手

数据挖掘 淘宝 电商 API 接口 API 测试

ON1 Photo RAW 2025 .1 for Mac(照片编辑器)

小玖_苹果Mac软件

阿里P8面试官让我吃透这份10W字java面试题终于可以拿java高级岗

程序员高级码农

Java 编程 程序员 java面试 Java面试题

RTX 4090 显卡,除了打游戏还能做什么?

Finovy Cloud

gpu 显卡 云电脑

iBarcoder v3.16.0免激活版 专业的条形码生成器

小玖_苹果Mac软件

GitHub上疯传数万次的蚂蚁内部绝密分布式高可用算法笔记太香了

程序员高级码农

Java 编程 程序员 分布式 算法

Final Draft 13 for Mac激活版 剧本写作软件

小玖_苹果Mac软件

企业组网解决方案与常用技术解析

Ogcloud

SD-WAN 企业组网 企业网络 SD-WAN组网 SD-WAN服务商

Lightroom Classic 2025 for Mac(LRC2025)v14.1.1中文激活版

小玖_苹果Mac软件

Axure RP 9 for Mac(交互原型设计软件)v9.0.0.3746中文激活版

小玖_苹果Mac软件

复旦大学与华为共建鲲鹏昇腾科教创新孵化中心 着力科研创新与人才培养

Geek_2d6073

AI-Native的路要怎么走?一群技术“老炮儿”指明了方向

Alter

中昊芯英荣登2024创业邦100未来独角兽榜单

科技热闻

京东商品详情数据接口丨京东API接口指南

tbapi

京东API接口 京东商品详情接口

Native Instruments Maschine for Mac(全球最全面的采样器)v3.0.1激活版

小玖_苹果Mac软件

FabFilter Total Bundle 2024 for Mac(音频插件合集)v2024.12.16直装激活版

小玖_苹果Mac软件

AI视频无损放大Topaz Video AI for Mac v6.0.0激活版

小玖_苹果Mac软件

博客写作软件 MarsEdit mac v5.1.4激活版

小玖_苹果Mac软件

Python绘制七段数码管字母:从理论到实践

快乐非自愿限量之名

Python

SD-WAN在企业组网中的重要作用

Ogcloud

SD-WAN 企业组网 SD-WAN组网 SDWAN SD-WAN国际专线

如何看待Java面试造火箭工作拧螺丝?

了不起的程序猿

后端 架构师 java程序员 java面试 Java八股文

中化信息与枫清科技深化合作:共探“AI+”产业新生态

Fabarta

数智化转型 #大模型

QLab Pro for Mac 激活版 音频编辑处理工具

小玖_苹果Mac软件

2024冬季FORCE大会,火山引擎边缘云全面展示边缘云 + AI 产品技术方案

火山引擎边缘云

机器人 火山引擎 AI 大底座 具身智能 边缘智能

在.NET语言中封装存储过程_.NET_Jonathan Allen_InfoQ精选文章