Select 1 as One, 2 as Two, '3' as Three返回的结构是列名 One Two Three 值 1 2 "3"
比如存储过程是proc1 ..... return 1现在要获得1这个返回结果 大家帮忙看看
int i = SqlCommand1.ExecuteNonQuery().ToString();
不好意思,看错了SqlParameter param = new SqlParameter(); param.Direction = System.Data.ParameterDirection.ReturnValue;command.Parameters.Add(param); int i = int.Parse(SqlCommand1.ExecuteScalar().ToString());int nReturn = (int)param.Value;
qimini(循序渐进) 不对阿 你试试看 create proc test return 1用上面你的方法,出错啊!不能得到返回值1
SqlParameter param = new SqlParameter(); param.Direction = System.Data.ParameterDirection.ReturnValue;command.Parameters.Add(param); int i = command.ExecuteNonQuery();int nReturn = (int)param.Value;//代码本机测试通过
create proc test as return 1然后你在查询分析器里面执行test后,只显示成功但并无返回值所以确切应该这样 create proc test as return 1... DECLARE @return_value int EXEC @return_status = test SELECT 'Return Value' = @return_status 也就是说SQL需要用本地变量才能取到return的值
create proc test as return 1然后你在查询分析器里面执行test后,只显示成功但并无返回值所以确切应该这样 create proc test as return 1... DECLARE @return_value int EXEC @return_value = test --无参数的存储过程 SELECT 'Return Value' = @return_value --得到存储过程中return的值也就是说SQL需要用本地变量才能取到return的值
再请问。如何获得存储过程中的return 1的返回值??
一般都是用output的参数
SqlParameter param = YourSqlCommand.CreateParameter();
param.Direction = ParameterDirection.ReturnValue;
YourSqlCommand.Parameters.Add( param );
值 1 2 "3"
.....
return 1现在要获得1这个返回结果
大家帮忙看看
param.Direction = System.Data.ParameterDirection.ReturnValue;command.Parameters.Add(param); int i = int.Parse(SqlCommand1.ExecuteScalar().ToString());int nReturn = (int)param.Value;
不对阿
你试试看
create proc test
return 1用上面你的方法,出错啊!不能得到返回值1
SqlParameter param = new SqlParameter();
param.Direction = System.Data.ParameterDirection.ReturnValue;
command.Parameters.Add(param);
string s = SqlCommand1.ExecuteScalar().ToString();
存储过程:
create proc test
return 1
出错信息:"未将对象引用到对象的实例"
如果存储过程改为如下:
create proc test
select 1
正常返回1
存储过程:
create proc test
as
return 1
string s = SqlCommand1.ExecuteScalar().ToString();//不是同一个SqlCommand!
……》
SqlCommand1.Parameters.Add(param);
string s = SqlCommand1.ExecuteScalar().ToString();
System.Data.SqlClient.SqlParameter param = new System.Data.SqlClient.SqlParameter();
param.Direction = System.Data.ParameterDirection.ReturnValue;
command.Parameters.Add(param);
string s = command.ExecuteScalar().ToString();
还是不对!
m_cmd.CommandType=CommandType.StoredProcedure;
m_cmd.Connection=this.sqlConnection1;
m_cmd.CommandText="dbo.[StoredProcedure1]";
m_cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@RETURN_VALUE", System.Data.SqlDbType.Int, 4, System.Data.ParameterDirection.ReturnValue, false, ((System.Byte)(0)), ((System.Byte)(0)), "", System.Data.DataRowVersion.Current, null));
this.sqlConnection1.Open();
m_cmd.ExecuteNonQuery();
MessageBox.Show(m_cmd.Parameters["@RETURN_VALUE"].Value.ToString());StoredProcedure1:
ALTER PROCEDURE dbo.StoredProcedure1
AS
RETURN 1
param.Direction = System.Data.ParameterDirection.ReturnValue;command.Parameters.Add(param); int i = command.ExecuteNonQuery();int nReturn = (int)param.Value;//代码本机测试通过
as
return 1然后你在查询分析器里面执行test后,只显示成功但并无返回值所以确切应该这样
create proc test
as
return 1...
DECLARE @return_value int
EXEC @return_status = test
SELECT 'Return Value' = @return_status
也就是说SQL需要用本地变量才能取到return的值
as
return 1然后你在查询分析器里面执行test后,只显示成功但并无返回值所以确切应该这样
create proc test
as
return 1...
DECLARE @return_value int
EXEC @return_value = test --无参数的存储过程
SELECT 'Return Value' = @return_value --得到存储过程中return的值也就是说SQL需要用本地变量才能取到return的值
ExecuteNonQuery()指的是SQL语句影响的记录行数吧
ExecuteNonQuery()的返回值指的是SQL语句影响的记录行数吧
:D