//代码
BLL.User user = new edu.BLL.User();
int userId = user.SignIn(LoginName.Text,Password.Text);if(userId == 0)
{
message.Text = "用户名或密码错误!";
}
else
{
Response.Redirect("../edu/student/s_index.aspx");
}//调入登录的BLL类SignIn
public int SignIn(string userName, string userPwd)
{
SqlParameter[] signInPara = {
new SqlParameter("@userName", userName), new SqlParameter("@userPwd", userPwd) }; return Convert.ToInt32(DAL.SQLHelper.ExecuteScalar(DAL.SQLHelper.CONN_STRING,
CommandType.StoredProcedure, "SignIn", signInPara));
}//数据库检索类ExecuteScalar
public static object ExecuteScalar(SqlConnection conn, CommandType cmdType, string cmdText, params SqlParameter[] cmdParms)
{
SqlCommand cmd = new SqlCommand();
PrepareCommand(cmd, conn, null, cmdType, cmdText, cmdParms);
object val = cmd.ExecuteScalar();
cmd.Parameters.Clear();
return val;
}//存储过程
CREATE PROCEDURE SignIn
(
@userName char(15),
@userPwd char(9)
)
AS
SELECT ksbh
FROM test1
WHERE ksbh=@userName
AND bmh=@userPwd
GO
//错误语句
值对于 Int32 太大或太小。
数据库中ksbh字段是char15,也许太长了,换别的char4的字段数据读出就没有问题,
请问如何修改这句return Convert.ToInt32,或者是别的方法
BLL.User user = new edu.BLL.User();
int userId = user.SignIn(LoginName.Text,Password.Text);if(userId == 0)
{
message.Text = "用户名或密码错误!";
}
else
{
Response.Redirect("../edu/student/s_index.aspx");
}//调入登录的BLL类SignIn
public int SignIn(string userName, string userPwd)
{
SqlParameter[] signInPara = {
new SqlParameter("@userName", userName), new SqlParameter("@userPwd", userPwd) }; return Convert.ToInt32(DAL.SQLHelper.ExecuteScalar(DAL.SQLHelper.CONN_STRING,
CommandType.StoredProcedure, "SignIn", signInPara));
}//数据库检索类ExecuteScalar
public static object ExecuteScalar(SqlConnection conn, CommandType cmdType, string cmdText, params SqlParameter[] cmdParms)
{
SqlCommand cmd = new SqlCommand();
PrepareCommand(cmd, conn, null, cmdType, cmdText, cmdParms);
object val = cmd.ExecuteScalar();
cmd.Parameters.Clear();
return val;
}//存储过程
CREATE PROCEDURE SignIn
(
@userName char(15),
@userPwd char(9)
)
AS
SELECT ksbh
FROM test1
WHERE ksbh=@userName
AND bmh=@userPwd
GO
//错误语句
值对于 Int32 太大或太小。
数据库中ksbh字段是char15,也许太长了,换别的char4的字段数据读出就没有问题,
请问如何修改这句return Convert.ToInt32,或者是别的方法
CommandType.StoredProcedure, "SignIn", signInPara)).Tostring());看看行不行····
CommandType.StoredProcedure, "SignIn", signInPara)).Tostring();
//显示错误
“int”并不包含对“Tostring”的定义改为Convert.ToInt64
//显示错误
“long”并不包含对“Tostring”的定义
//显示错误
无法将类型“long”隐式转换为“int”
{
SqlParameter[] signInPara = {
new SqlParameter("@userName", userName), new SqlParameter("@userPwd", userPwd) }; return Convert.ToInt64(DAL.SQLHelper.ExecuteScalar(DAL.SQLHelper.CONN_STRING, CommandType.StoredProcedure, "SignIn", signInPara));
}
CommandType.StoredProcedure, "SignIn", signInPara).Tostring()); 你把格式()搞错位置了, 把着代码复制过去看看 按我的理解不会有问题的这个是把对象object 转换成string, 再强制转换成 INT 型,怎么会错呢? ~~~~
//显示错误
找不到类型或命名空间名称“int64”(是否缺少 using 指令或程序集引用?)改为return Convert.ToInt32(DAL.SQLHelper.ExecuteScalar(DAL.SQLHelper.CONN_STRING,
CommandType.StoredProcedure, "SignIn", signInPara).Tostring());
//显示错误
“object”并不包含对“Tostring”的定义
要不 你这样看看具体错误是出在哪里的!~~~
ExecuteScalar方法是返回一个对象,那我们先实例化这个对象!!!object obj = DAL.SQLHelper.ExecuteScalar(DAL.SQLHelper.CONN_STRING,
CommandType.StoredProcedure, "SignIn", signInPara);return Convert.Toint32(obj.ToString());