急啊!!!请各位高手帮帮忙!

J_X_M 2010-03-18 03:51:08
/// <summary>
/// 通过用户名得到角色Id
/// </summary>
/// <param name="user">UserInfo</param>
/// <returns>int</returns>
public static int GetUserIdByUserLoginId(UserInfo user)
{
string sql = "SELECT Id FROM UserInfo WHERE LoginId=@LoginId ";
SqlParameter[] para = new SqlParameter[]
{
new SqlParameter("@LoginId",user.LoginId)
};
return Convert.ToInt32(DBHelper.ExecuteScalar(CommandType.Text, sql, para));
}




//ExecuteScalar()


#region 执行一个命令并返回第一列
/// <summary>
/// 用指定的数据库连接字符串执行一个命令并返回一个数据集的第一列
/// </summary>
///<param name="ConnectionString">一个有效的连接字符串</param>
/// <param name="commandType">命令类型(存储过程, 文本, 等等)</param>
/// <param name="commandText">存储过程名称或者sql命令语句</param>
/// <param name="commandParameters">执行命令所用参数的集合</param>
/// <returns>用 Convert.To{Type}把类型转换为想要的 </returns>
public static object ExecuteScalar(CommandType commandType, string commandText, params SqlParameter[] commandParameters)
{
using (SqlConnection connection = new SqlConnection(ConnectionString))
{
// connection.Open();
SqlCommand command = new SqlCommand(commandText, connection);
//command.Parameters.AddRange(commandParameters);
PrepareCommand(command, connection, null, commandType, commandText, commandParameters);
object val = command.ExecuteScalar();

为什么这个val的值是空的
请各位大高手帮我看看这是哪里出了问题!

command.Parameters.Clear();
return val;
}
}
#endregion

#region 准备执行一个命令
/// <summary>
/// 准备执行一个命令
/// </summary>
/// <param name="cmd">sql命令</param>
/// <param name="conn">Sql连接</param>
/// <param name="trans">Sql事务</param>
/// <param name="cmdType">命令类型例如 存储过程或者文本</param>
/// <param name="cmdText">命令文本</param>
/// <param name="cmdParms">执行命令的参数</param>
private static void PrepareCommand(SqlCommand command, SqlConnection connection, SqlTransaction transaction, CommandType commandType, string commandText, SqlParameter[] commandParameters)
{
if (connection.State != ConnectionState.Open)
connection.Open();

command.Connection = connection;
command.CommandText = commandText;

if (transaction != null)
command.Transaction = transaction;

command.CommandType = commandType;

if (commandParameters != null)
command.Parameters.AddRange(commandParameters);
}
#endregion
...全文
34 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧