public AdminInfo selectAdminByUserName(string userName)
{
DataTable dt = new DataTable();
string strSql = "sp_News_SelectAdminByUserName";
SqlParameter[] paras = new SqlParameter[]{
new SqlParameter("@UserName",SqlDbType.NVarChar,20)
};
paras[0].Value = userName;
dt = sqlhelper.ExecuteQuery(strSql, paras, CommandType.StoredProcedure);
AdminInfo adminInfo = new AdminInfo();
adminInfo.UserName = userName;
adminInfo.Pwd = dt.Rows[0]["Pwd"].ToString();
adminInfo.AdminName = dt.Rows[0]["AdminName"].ToString();
adminInfo.EMail = dt.Rows[0]["Email"].ToString();
adminInfo.CreatTime = Convert.ToDateTime(dt.Rows[0]["CreatTime"]);
adminInfo.LastLoginDate = Convert.ToDateTime(dt.Rows[0]["LastLoginDate"]);
return adminInfo;
}
不知道为啥我参数传进去了 单独执行存储过程也没问题
但是执行时总是报错 adminInfo.Pwd = dt.Rows[0]["Pwd"].ToString();在位置0处没有任何行!!别的类里我也是这样写的没问题
不知道出了啥问题撒!!
{
DataTable dt = new DataTable();
string strSql = "sp_News_SelectAdminByUserName";
SqlParameter[] paras = new SqlParameter[]{
new SqlParameter("@UserName",SqlDbType.NVarChar,20)
};
paras[0].Value = userName;
dt = sqlhelper.ExecuteQuery(strSql, paras, CommandType.StoredProcedure);
AdminInfo adminInfo = new AdminInfo();
adminInfo.UserName = userName;
adminInfo.Pwd = dt.Rows[0]["Pwd"].ToString();
adminInfo.AdminName = dt.Rows[0]["AdminName"].ToString();
adminInfo.EMail = dt.Rows[0]["Email"].ToString();
adminInfo.CreatTime = Convert.ToDateTime(dt.Rows[0]["CreatTime"]);
adminInfo.LastLoginDate = Convert.ToDateTime(dt.Rows[0]["LastLoginDate"]);
return adminInfo;
}
不知道为啥我参数传进去了 单独执行存储过程也没问题
但是执行时总是报错 adminInfo.Pwd = dt.Rows[0]["Pwd"].ToString();在位置0处没有任何行!!别的类里我也是这样写的没问题
不知道出了啥问题撒!!
--在查询分析器中执行下
exec sp_News_SelectAdminByUserName
--@UserName
''
但是执行时总是报错 adminInfo.Pwd = dt.Rows[0]["Pwd"].ToString();在位置0处没有任何行!!应该是dt里没数据
但是我断点跟踪了 dt = sqlhelper.ExecuteQuery(strSql, paras, CommandType.StoredProcedure);
paras里value有值说明参数传进去了!!
不知道哪的问题
-- Description: <通过用户名获取管理员>
-- =============================================
ALTER PROCEDURE [dbo].[sp_News_SelectAdminByUserName]
@UserName varchar(20)
AS
BEGIN
select * from Admin where UserName=@UserName
END
public DataTable ExecuteQuery(string cmdText, SqlParameter[] paras, CommandType cmdType)
{
DataTable dt = new DataTable();
sqlCmd = new SqlCommand(cmdText, GetConnection());
sqlCmd.CommandType = cmdType;
sqlCmd.Parameters.AddRange(paras);
using (dr = sqlCmd.ExecuteReader(CommandBehavior.CloseConnection))
{
dt.Load(dr);
}
return dt;
}
因为我前面几个类都是用的这个方法没什么问题
paras[0].Value = userName = 'abc';
{}
select * from Admin where UserName=@UserName
在查询分析器执行
10楼什么意思没看懂?
if(dt.rows.count>0)
{
//go on
}
GetConnection返回的连接对吗?