从存储过程中获取数据的问题 [英] problem in getting data from stored procedure
本文介绍了从存储过程中获取数据的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我知道我的代码有什么问题,程序执行正确,但是这里userId变零(0)
public static bool AdminLogin( string username, string password, out int userId)
{
bool IsUser = 假跨度>;
使用(SqlConnection conn = new SqlConnection(Constants.CONNECTION))
{
使用(SqlCommand cmd = new SqlCommand(Constants.Procs.CHECK_ADMIN_LOGINS, conn))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add( @ Username,SqlDbType.VarChar , 20 )。Value = username;
cmd.Parameters.Add( @ Password,SqlDbType.VarChar, 20 )。值=密码;
cmd.Parameters.Add( @ UserId,SqlDbType.SmallInt).Value = ParameterDirection.Output;
cmd.Parameters.Add( @ IsUser,SqlDbType.Bit, 2 )。Value = ParameterDirection.Output;
conn.Open();
cmd.ExecuteNonQuery();
int .TryParse(Convert.ToString(cmd.Parameters [ < span class =code-string> @ UserId]。Value), out userId);
return Convert.ToBoolean(cmd.Parameters [ @ IsUser跨度>]值)。
}
}
return IsUser;
}
解决方案
为什么你认为将参数的值设置为ParameterDirection.Output会神奇地使它成为输出参数?您是否认为将其设置为您的用户名会神奇地使其成为您的用户?
试试这个:
cmd.Parameters.Add( @ UserId,SqlDbType.SmallInt).Direction = ParameterDirection.Output;
May i know whats problem with my code, the procedure executed correct only, but here userId am getting zero (0)
public static bool AdminLogin(string username, string password, out int userId)
{
bool IsUser = false;
using (SqlConnection conn = new SqlConnection(Constants.CONNECTION))
{
using (SqlCommand cmd = new SqlCommand(Constants.Procs.CHECK_ADMIN_LOGINS, conn))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@Username", SqlDbType.VarChar, 20).Value = username;
cmd.Parameters.Add("@Password", SqlDbType.VarChar, 20).Value = password;
cmd.Parameters.Add("@UserId", SqlDbType.SmallInt).Value = ParameterDirection.Output;
cmd.Parameters.Add("@IsUser", SqlDbType.Bit, 2).Value = ParameterDirection.Output;
conn.Open();
cmd.ExecuteNonQuery();
int.TryParse(Convert.ToString(cmd.Parameters["@UserId"].Value), out userId);
return Convert.ToBoolean(cmd.Parameters["@IsUser"].Value);
}
}
return IsUser;
}
解决方案
Why do you think that setting the Value of a parameter to "ParameterDirection.Output" is going to magically cause it to become an output parameter? Do you think that setting it to your username magically makes it your user?
Try this:
cmd.Parameters.Add("@UserId", SqlDbType.SmallInt).Direction = ParameterDirection.Output;
这篇关于从存储过程中获取数据的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文