C# 怎么执行一个存储过程后获取返回值“Return Value”和查询结果?存储过程类似:DECLARE @ret int
select @ret = count(id) FROM UserInfo
SELECT TOP (@PageSize) * FROM UserInfo WHERE UserName not in (SELECT ((@Page-1)*@PageSize) UserName FROM UserInfo)
return @ret获取总数量和经过分页的查询结果我要执行的是另外一个存储过程:aspnet_Membership_GetAllUsers,差不多
select @ret = count(id) FROM UserInfo
SELECT TOP (@PageSize) * FROM UserInfo WHERE UserName not in (SELECT ((@Page-1)*@PageSize) UserName FROM UserInfo)
return @ret获取总数量和经过分页的查询结果我要执行的是另外一个存储过程:aspnet_Membership_GetAllUsers,差不多
解决方案 »
- FarPoint Spread WinForm(.Net 2.0)的应用。打开一个Excel后,怎么获取该Excel里的页眉页脚呢?
- 求助 获取SQL字段默认值显示System.byte[]
- 二进制数组byte[] 转换成bmp图像显示的算法 有点错误 帮忙看看 急...
- 关于给程序打Log
- 新手问题,form2如何操作form1的元素?
- (急)如果把DataGridView中显示的数据,全部放到DataTable中
- c#中,socket的一个连接远程服务器的问题
- 寻找导师--制作游戏外挂
- 如何在前台显示出xml里相同名称节点里的值
- threadstate和thread有什么联系和区别?比如----??
- POST方法
- 手动操作数据库 都 报超时。。。。高手请指教
{
int iRet;
SqlConnection conn = new SqlConnection(Conn_Str);
SqlCommand cmd = new SqlCommand("User_Add", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@UName", us.UName);
cmd.Parameters.AddWithValue("@UPass", us.UPass);
cmd.Parameters.AddWithValue("@PassQuestion", us.PassQuestion);
cmd.Parameters.AddWithValue("@PassKey", us.PassKey);
cmd.Parameters.AddWithValue("@Email", us.Email);
cmd.Parameters.AddWithValue("@RName", us.RName);
cmd.Parameters.AddWithValue("@Area", us.Area);
cmd.Parameters.AddWithValue("@Address", us.Address);
cmd.Parameters.AddWithValue("@ZipCodes", us.ZipCodes);
cmd.Parameters.AddWithValue("@Phone", us.Phone);
cmd.Parameters.AddWithValue("@QQ", us.QQ);
cmd.Parameters.Add("@RETURN_VALUE", "").Direction=ParameterDirection.ReturnValue;
try
{
conn.Open();
cmd.ExecuteNonQuery();
iRet = (int)cmd.Parameters["@RETURN_VALUE"].Value;
}
catch (SqlException ex)
{
throw ex;
}
finally
{
conn.Close();
}
return iRet;
}
cmd.Parameters.Add("@RETURN_VALUE", "").Direction=ParameterDirection.ReturnValue; //添加获得返回值的参数
try
{
conn.Open();
cmd.ExecuteNonQuery();
iRet = (int)cmd.Parameters["@RETURN_VALUE"].Value; //获得返回值的地方
}
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "aspnet_Membership_GetAllUsers";
cmd.Connection = conn;
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@ApplicationName", "CFPhoto");
cmd.Parameters.AddWithValue("@PageIndex", ThisPage);
cmd.Parameters.AddWithValue("@PageSize", PageSize);
cmd.Parameters.Add("@RETURN_VALUE","").Direction = ParameterDirection.ReturnValue;
conn.Open();
SqlDataReader dr = cmd.ExecuteReader();//获取查询语句结果
Label1.Text = cmd.Parameters["@RETURN_VALUE"].Value.ToString();
GridView1.DataSource = dr;
GridView1.DataBind();
dr.Close();
难道要这样?SqlConnection conn = new SqlConnection(SqlHelper.SqlConnectionString);
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "aspnet_Membership_GetAllUsers";
cmd.Connection = conn;
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@ApplicationName", "CFPhoto");
cmd.Parameters.AddWithValue("@PageIndex", ThisPage);
cmd.Parameters.AddWithValue("@PageSize", PageSize);
cmd.Parameters.Add("@RETURN_VALUE","").Direction = ParameterDirection.ReturnValue;
conn.Open();
cmd.ExecuteNonQuery();//先执行一遍
SqlDataReader dr = cmd.ExecuteReader();//再执行一遍
Label1.Text = cmd.Parameters["@RETURN_VALUE"].Value.ToString();
GridView1.DataSource = dr;
GridView1.DataBind();
dr.Close();看着很不爽。
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "aspnet_Membership_GetAllUsers";
cmd.Connection = conn;
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@ApplicationName", "CFPhoto");
cmd.Parameters.AddWithValue("@PageIndex", ThisPage);
cmd.Parameters.AddWithValue("@PageSize", PageSize);
cmd.Parameters.Add("@RETURN_VALUE","").Direction = ParameterDirection.ReturnValue;
conn.Open();
cmd.ExecuteNonQuery();//先执行一遍
SqlDataReader dr = cmd.ExecuteReader();//再执行一遍
Label1.Text = cmd.Parameters["@RETURN_VALUE"].Value.ToString();
GridView1.DataSource = dr;
GridView1.DataBind();
dr.Close();cmd.CommandText = "aspnet_Membership_GetAllUsers";
是写的你的存储过程的名称就行了,
cmd.CommandType = CommandType.StoredProcedure;这个就代表执行的是存储过程
而如果是cmd.CommandType = CommandType.Text;这也是默认的,这样就是执行的SQl语句
所以这样是可以的ParameterDirection.ReturnValue这个就是取返回结果的Label1.Text 值就是返回值
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "aspnet_Membership_GetAllUsers";
cmd.Connection = conn;
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@ApplicationName", "CFPhoto");
cmd.Parameters.AddWithValue("@PageIndex", ThisPage);
cmd.Parameters.AddWithValue("@PageSize", PageSize);
cmd.Parameters.Add("@RETURN_VALUE","").Direction = ParameterDirection.Output;
conn.Open();
//cmd.ExecuteNonQuery();//先执行一遍
SqlDataReader dr = cmd.ExecuteReader();//再执行一遍
Label1.Text = cmd.Parameters["@RETURN_VALUE"].Value.ToString();
GridView1.DataSource = dr;
GridView1.DataBind();
dr.Close();