首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从.net c#中读取输出变量?

如何从.net c#中读取输出变量?
EN

Stack Overflow用户
提问于 2011-09-15 12:05:05
回答 1查看 199关注 0票数 0

有人知道如何从.net c#读取输出变量吗?

示例:

如果我有以下存储的proc,它将返回输出变量(@customer_id, @customer_name, @customer_address, @customer_age)而不是select变量,我如何读取具有以下内容的输出变量?

代码语言:javascript
运行
复制
mySqlCommand.CommandText = "EXEC app_customers @name=" + sName.Text;
mySqlConnection.Open();
SqlDataReader mySqlDataReader = mySqlCommand.ExecuteReader();
while (mySqlDataReader.Read())
{
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-15 12:07:58

如果结果是单个值(或者如果您只对第一列中的第一个值感兴趣),请使用ExecuteScalar方法。

它返回一个对象,只需将其转换为预期的类型。

代码语言:javascript
运行
复制
int id = (int)mySqlCommand.ExecuteScalar();

注意:调用过程的方式不是正常的方式。将命令设置为引用存储过程,然后向command.Parameters集合添加适当的参数。使用"exec ..."调用该过程不是最佳实践,甚至可能使您容易受到攻击。如果您需要有关执行此类调用的更多信息,请访问start here.

编辑:

如果它确实是您需要捕获的输出参数(我相信我误解了您的问题),那么上面的段落更适用。考虑这种方法:

代码语言:javascript
运行
复制
mySqlCommand.CommandText = "app_customers";
mySqlCommand.CommandType = System.Data.CommandType.StoredProcedure;
mySqlCommand.Parameters.AddWithValue("@name", theValue);
var customerIdParam = mySqlCommand.Parameters.Add("@customer_id", System.Data.SqlDbType.Int);
customerIdParam.Direction = System.Data.ParameterDirection.Output;
// add more parameters, setting direction as appropriate

mySqlCommand.ExecuteNonQuery();
int customerId = (int)customerIdParam.Value;
// read additional outputs
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7425721

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档