惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
T
Threatpost
Latest news
Latest news
N
News | PayPal Newsroom
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Help Net Security
Help Net Security
D
Darknet – Hacking Tools, Hacker News & Cyber Security
AI
AI
Simon Willison's Weblog
Simon Willison's Weblog
TaoSecurity Blog
TaoSecurity Blog
The Last Watchdog
The Last Watchdog
L
LINUX DO - 热门话题
Google DeepMind News
Google DeepMind News
T
Threat Research - Cisco Blogs
O
OpenAI News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
The Exploit Database - CXSecurity.com
NISL@THU
NISL@THU
Application and Cybersecurity Blog
Application and Cybersecurity Blog
S
Securelist
小众软件
小众软件
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Martin Fowler
Martin Fowler
S
SegmentFault 最新的问题
Cisco Talos Blog
Cisco Talos Blog
云风的 BLOG
云风的 BLOG
AWS News Blog
AWS News Blog
GbyAI
GbyAI
N
News and Events Feed by Topic
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
美团技术团队
Engineering at Meta
Engineering at Meta
A
About on SuperTechFans
博客园 - 三生石上(FineUI控件)
S
Schneier on Security
博客园 - 聂微东
V2EX - 技术
V2EX - 技术
T
Troy Hunt's Blog
SecWiki News
SecWiki News
S
Secure Thoughts
B
Blog RSS Feed
Hugging Face - Blog
Hugging Face - Blog
WordPress大学
WordPress大学
腾讯CDC
H
Heimdal Security Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Apple Machine Learning Research
Apple Machine Learning Research
月光博客
月光博客
www.infosecurity-magazine.com
www.infosecurity-magazine.com
P
Privacy International News Feed

博客园 - GDLMO

给12306的建议 在delphi中引用第三方控件时,找不到dcu的解决办法 使用SqlBulkCopy时应注意Sqlserver表中使用缺省值的列 在sqlserver中使用bcp自动导出数据的方法和注意事项 无法识别的属性“requirePermission” sqlserver,将视图或表的记录不重复的插入到另一个表 让单元测试项目也能同步测试主程序的APP.CONFIG 水平太差,虽然认为Linq是个好东东,但有谁能教教我,怎么调试? Sqlserver 插入一条记录时,不重复插入的办法 dnn5.5.1的配置 动态生成ASP.NET按钮时要注意的一个问题 关于EditUrl与NavigateURL的调用问题 DNN常用的几种页面跳转(EditUrl和Globals.NavigateURL) The Auto option has been disabled as the DotNetNuke Application cannot connect to a valid SQL Server database SQLite3中TimeStamp的使用问题 博文阅读密码验证 - 博客园 在DNN中使用jQuery的插件Validate Enter Null Values for DateTime Column of SQL Server(转) Web.Config和Sql Server2005连接字符串总结(转)
在DNN中使用SqlDataReader ExecuteReader(string connectionString, string spName, params object[] parameterValues)始终无法获得返回值
GDLMO · 2010-02-06 · via 博客园 - GDLMO

SqlHelper.ExecuteNonQuerystring的两个构造函数在返回值方面有差异

如果执行SqlHelper.ExecuteNonQuerystring(connectionString, string spName, params object[] parameterValues)则始终无法获得返回值

如果执行SqlHelper.ExecuteNonQuery(string connectionString, CommandType commandType, string commandText, params SqlParameter[] commandParameters)则可以获得返回值

Ref: http://blog.joycode.com/ghj/archive/2004/04/12/19015.aspx

SqlHelper使用中需要注意的一点(带输出、返回参数的存储过程):

SqlHelper中,在使用存储过程时候,如果你的存储过程参数中有输出、返回参数。有些函数是无法使用的。具体来说就是:

         SQLHelp 里面,如果传入的参数中有 params SqlParameter[] commandParameters 的那几个,是没问题的,有问题的是传入参数中有:params object[] parameterValues 的那几个:

比如:
public static int ExecuteNonQuery(string connectionString, CommandType commandType, string commandText, params SqlParameter[] commandParameters)  这个没有提到的问题。

这个
public static int ExecuteNonQuery(string connectionString, string spName, params object[] parameterValues)
有提到的问题。

下面是有这些问题的函数列表:

public static int ExecuteNonQuery(string connectionString, string spName, params object[] parameterValues)
public static int ExecuteNonQuery(SqlConnection connection, string spName, params object[] parameterValues)
public static int ExecuteNonQuery(SqlTransaction transaction, string spName, params object[] parameterValues)

public static DataSet ExecuteDataset(string connectionString, string spName, params object[] parameterValues)
public static DataSet ExecuteDataset(SqlConnection connection, string spName, params object[] parameterValues)
public static DataSet ExecuteDataset(SqlTransaction transaction, string spName, params object[] parameterValues)

public static SqlDataReader ExecuteReader(string connectionString, string spName, params object[] parameterValues)
public static SqlDataReader ExecuteReader(SqlConnection connection, string spName, params object[] parameterValues)
public static SqlDataReader ExecuteReader(SqlTransaction transaction, string spName, params object[] parameterValues)

public static object ExecuteScalar(string connectionString, string spName, params object[] parameterValues)
public static object ExecuteScalar(SqlConnection connection, string spName, params object[] parameterValues)
public static object ExecuteScalar(SqlTransaction transaction, string spName, params object[] parameterValues)

public static XmlReader ExecuteXmlReader(SqlConnection connection, string spName, params object[] parameterValues)
public static XmlReader ExecuteXmlReader(SqlTransaction transaction, string spName, params object[] parameterValues)


public static void FillDataset(string connectionString, string spName,
   DataSet dataSet, string[] tableNames,
   params object[] parameterValues)
public static void FillDataset(SqlConnection connection, string spName,
   DataSet dataSet, string[] tableNames,
   params object[] parameterValues)
public static void FillDataset(SqlTransaction transaction, string spName,
   DataSet dataSet, string[] tableNames,
   params object[] parameterValues)

这里的类似函数的特征就是参数中,其中一个参数是:
params object[] parameterValues

如果你非要使用这些函数,你就会看到,你接收不到返回的存储过程输出、返回参数。

原因:
      在这些函数的内部实现中,他把object[] parameterValues 转换为 SqlParameter[] commandParameters,而commandParameters 是个局部变量,在离开这个函数后,这些就无法再访问了。返回前,SqlHelper 并没有把commandParameters 的内容转赋给parameterValues 。所以之后你无法访问返回、输出参数的值。