作者one164 (阿MON)
看板C_Sharp
标题[问题] 更换密码语法的小问题
时间Sat Sep 12 04:42:37 2009
小弟现在做到会员的部份
可是写了更换密码的语法碰到了瓶颈
以下是小弟写的部份副程式语法
protected long checkUser(string tbuser, string tbpass)
{
string strSQL = null;
long userID = 0;
// 检查使用者名称和密码是否正确且经过启动
strSQL = "SELECT Acc_id FROM MemberInformation WHERE ";
strSQL += "Acc_id = '" + tbuser + "' AND Acc_password = '" + tbpass +
"' AND ValidatedUser=true";
// 建立Connection物件
string connStr = "data source=localhost;user
id=sa;password=123456;initial catalog=SDDB";
SqlConnection conn = new SqlConnection(connStr);
conn.Open();
// 开启资料库连结
// 建立Command物件的SQL指令
SqlCommand sqlcmd = new SqlCommand(strSQL, conn);
// 使用ExecuteScalar执行SQL指令
userID = sqlcmd.ExecuteScalar();
conn.Close();
return userID;
}
侦错时会跑出错误
型别 'object' 不能隐含转换为 'long'。已有明确转换存在 (您是否漏掉了转型?)
userID = sqlcmd.ExecuteScalar();(是错在这一行)
小弟有试过很多方法去改型别可是也没办法
有前辈能教小弟这里的错误改怎麽办吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.136.120.228
1F:→ evirtues:userID=Convert.ToInt64(sqlcmd.ExecuteScalar()); ?? 09/12 12:31
2F:推 taicomjp:userID = (Int64)sqlcmd.ExecuteScalar(); 09/12 13:13
3F:→ one164:我竟然忘记最原本的方法了 一直在改上面userID的型别 囧 09/12 14:00
4F:→ one164:感谢楼上两位前辈指导! 09/12 14:01
5F:推 tomex:btw,你的写法会有sql injection安全问题。 09/15 16:43
6F:推 horngsh:hint:改用SqlParameter class就不会有tomex说的问题 09/20 01:50