在我的一个项目中我必须使用C#读取TextBox中以下过程返回的值。
任何人都可以编写代码来读取使用c#??
后续程序返回的TextBox中的@acreate procedure [dbo].[Test]
as
declare
@a numeric(5)
begin
set @a = (select COUNT(*) from Emp);
return @a
end
我试过这个
SqlConnection cn = new SqlConnection("data source=localhost;initial catalog=acc;uid=sa;pwd=fantastic");
cn.Open();
SqlCommand cmd = cn.CreateCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "Test";
Int32 i = Convert.ToInt32(cmd.ExecuteScalar());
textBox1.Text = i.ToString();
答案 0 :(得分:2)
- 部分复制粘贴,其中大部分是从头部开始,但尝试一下:
SqlConnection con = new SqlConnection(connectionstring);
SqlCommand com = new SqlCommand("test", con);
com.CommandType = CommandType.StoredProcedure;
SqlParamter returnVal = new SqlParameter("RETURN_VALUE", SqlDbType.Int);
returnVal.Direction = ParameterDirection.ReturnValue;
com.Parameters.Add(returnVal);
com.Connection.Open();
com.ExecuteNonQuery();
int A = returnVal.value;
con.Close();
ExecuteScalar:“执行查询,并返回查询返回的结果集中第一行的第一列。” 你要返回一个返回值,而不是一个字段。如果要使用标量,则需要编辑存储过程以实际返回如下字段:
create procedure [dbo].[Test]
as
begin
select (select COUNT(*) from Emp)
end
答案 1 :(得分:1)
您可以使用返回参数(请参阅answer of riffnl)或将sp中的“return”更改为“select”。
ExecuteScalar不会捕获返回值,只捕获第一个select
ed值。