然而没有抓住“;输出变量“;T-SQL和C#上的概念

本文关键字:T-SQL 输出 变量 | 更新日期: 2023-09-27 18:28:05

T-SQL/SQL服务器管理器和C#中的输出参数有什么问题??当与组件等一起使用时,2是如何组合的?

我看到人们在T-SQL存储过程中输入输出参数。。。

这是什么意思?它看起来很简单,但他们设法使它变得枯燥和复杂。

I.E:

我制作了一个带有选择和输出参数的存储过程。

有什么大不了的?不管怎样,我执行它并看到结果。

程序集或从C#代码调用程序集有什么问题?我执行它,仍然可以在不需要输出参数的情况下将所有内容保存在数据表或流读取器中。。。。

有什么好的解释吗??

同样适用于C#

修改了哪些参数?

I.E:像这样的函数FindCity(字符串zipcode,out字符串cityname)

据我所知,只是我可以在不声明的情况下输入城市名称,它会显示为字符串(至少我认为)

什么???为什么?有人能启发我吗?

感谢

然而没有抓住“;输出变量“;T-SQL和C#上的概念

虽然是的,但在SQL中,您可以使用"select"将值作为单元格返回,但这并不总是方便的。特别是,对于(比如)将从其他tsql调用的存储过程,当从SQL调用so时处理结果集是相当棘手的;对比度:

exec someInsertProc 123, 'ABC', out @id

同样的模式对于非proc SQL也很有用,只是为了使它变得方便和明确,并使api形式化。


在c#中,您只得到一个返回值,没有任何值可以与"select"相媲美。现在,您可以返回一个复杂的对象,使其具有多个值的属性,但有时使用"out"更方便,例如:

int i;
if(int.TryParse(s, out i)) {

合计+=i;}

请注意,"out"answers"ref"相对不常见,而且经常被人们误解。但它们在某些情况下非常有用。

SQL:用作向调用方输出结果的附加手段。假设您想查看记录列表和一些聚合数据或一些相关的单个数据。您可以直接将它写入输出变量,而不是在结果集中为它创建一列。

C#:out参数保证在函数调用退出之前填充(否则代码不会编译)。它也是一种将多个对象返回给调用者的方法。查看int.TryParse