c# 如何获得存储过程返回值,帮我看看哪里不对。谢谢
写了个程序,就是死活得不到返回值,各位帮忙看下哪里出了错。存储过程如下:
CREATE PROCEDURE P_test3
AS
BEGIN
return 800
END
GO
程序如下,调用DataAccess
--------------------编程问答-------------------- 存储过程都没有参数,瞎 往里面写参数
public int Return_int(int a)
{
SqlParameter[] parms = new SqlParameter[1];
parms[0] = new SqlParameter("returns", SqlDbType.Int);
parms[0].Direction = ParameterDirection.ReturnValue;
if (DataAccess.ExecuteProcedure(@"P_test3", parms, @"Planet"))
{
int bb = Convert.ToInt32(parms[0].Value);
return bb;
}
else
{
return 0;
}
}
连调试都没有就知道发帖子, --------------------编程问答-------------------- 有参数也是过了,就是不行,没参数用这个
private int r()
{
string conn = @"uid=sa;pwd=sa;server=.;database=Plant";
SqlConnection sqlconn = new SqlConnection(conn);
SqlCommand cmd = new SqlCommand();
cmd.Connection = sqlconn;
cmd.CommandText = "P_test3";
cmd.CommandType = CommandType.StoredProcedure;
// 创建参数
IDataParameter[] parameters = {
new SqlParameter("rval", SqlDbType.Int,4)
};
// 将参数类型设置为 返回值类型
parameters[0].Direction = ParameterDirection.ReturnValue;
// 添加参数
cmd.Parameters.Add(parameters[0]);
sqlconn.Open();
// 执行存储过程并返回影响的行数
cmd.ExecuteNonQuery();
sqlconn.Close();
// 显示影响的行数和返回值
return Convert.ToInt32(parameters[0].Value);
}
也能得到返回值,关键是用DataAccess后就不行,为什么? --------------------编程问答-------------------- 汗啊!!!! --------------------编程问答--------------------
我存储过程没错,是没参数,程序里的参数是返回值类型!不知你说我错在哪? --------------------编程问答-------------------- IDataParameter[] parameters = {
new SqlParameter("rval", SqlDbType.Int,4)
};
这个不是参数是什么,你把参数和返回值搞昏了 --------------------编程问答--------------------
大哥,你可以试试。那个是返回值。 --------------------编程问答-------------------- SQLHELPER能用,但DATAACCESS不行,是不是DataAccess有限制? --------------------编程问答-------------------- 存储过程没有参数
程序里就能传参数了??
--------------------编程问答-------------------- CREATE PROCEDURE P_test3
(
@参数1,
@参数2
)
AS
BEGIN
return 800
END
GO
--------------------编程问答-------------------- 你用返回首行首列的方法不就得到值了
补充:.NET技术 , C#