SqlCommand.ExecuteScalar - 指定特定数据项
我有一个返回 10 列数据的存储过程。使用 cmd.ExecuteScalar() 会返回第一条记录中第一列的值。
如何更改此设置,以便可以通过指定别名/数据项名称来返回不同的列?
我希望能够做类似的事情:
Dim FirstName as String = cmd.ExecuteScalar("FirstName")
I have a Stored Procedure which returns 10 columns of data. Using cmd.ExecuteScalar()
returns the value of the 1st column from the 1st record.
How can I change this so that I can return different columns, by specifying their alias/dataitem name?
I want to be able to do something like:
Dim FirstName as String = cmd.ExecuteScalar("FirstName")
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您可以创建一个调用 ExecuteReader 的方法,然后使用 GetOrdinal 和您的列名来调用 GetString。
我的 VB 不存在,但这是扩展方法的 C#。
You could create a method that calls ExecuteReader, and then uses GetOrdinal with your column name to then call GetString.
My VB is non-existent, but this is the C# for an extension method.
你不能。
Command.ExecuteScalar
不带任何参数..您可以做的是使用文本命令并修改其
CommandText
属性值以包含您需要获取的列:You can not.
Command.ExecuteScalar
take no parameters ..What you can do is to use a text command and modify its
CommandText
property value to include the column you need to get:您可以创建一个扩展方法来为您执行此操作。 C# 等效项(我想您可以将其转换为 VB.NET 扩展 相当容易):
...并像这样调用它:
You could create an extension method to do this for you. C# equiv (which I imagine you could translate to a VB.NET extension rather easily):
... and invoke it like so:
您也应该尝试下面的代码。
You should try the below code also.