将存储过程的结果保存在后台代码中
本文关键字:后台 代码 存在 保存 存储过程 结果 | 更新日期: 2023-09-27 17:50:26
我想从SQL Server的项目表中检索一个项目id。
我创建了一个这样的存储过程:create proc spFindProjectID
(@customerid int)
as
begin
select Project.pID
from Project
where Project.cID=@customerid
end
现在在c#中,我像这样执行这个过程:
public int findid(int id)
{
con = connect("igroup9_test1ConnectionString");
using (SqlCommand sqlComm = new SqlCommand("[spFindProjectID]", con))
{
if (con.State != ConnectionState.Open)
{
con.Open();
}
try
{
sqlComm.CommandType = CommandType.StoredProcedure;
sqlComm.Parameters.AddWithValue("@customerid", id);
sqlComm.CommandTimeout = 600;
sqlComm.ExecuteNonQuery();
}
catch (Exception ex)
{
throw (ex);
}
return
}
}
我想保存过程的结果并返回它。
我该怎么做?
让我们看一下ExecuteNonQuery
:的文档
对于UPDATE、INSERT和DELETE语句,返回值是受. ...命令影响的行数对于所有其他类型的语句,返回值为-1
您正在调用一个存储过程,它不是列出的3条语句中的任何一条。
我猜你的
select Project.pID
from Project
where Project.cID=@customerid
查询只返回一个单元格,您可以使用SqlCommand.ExecuteScalar
方法返回第一行的第一列作为object
。
,
sqlComm.CommandType = CommandType.StoredProcedure;
sqlComm.Parameters.AddWithValue("@customerid", id);
int value = (int)sqlComm.ExecuteScalar();
return value;