[問題] 更換密碼語法的小問題

看板C_Sharp作者 (阿MON)時間16年前 (2009/09/12 04:42), 編輯推噓3(303)
留言6則, 5人參與, 最新討論串1/2 (看更多)
小弟現在做到會員的部份 可是寫了更換密碼的語法碰到了瓶頸 以下是小弟寫的部份副程式語法 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

09/12 12:31, , 1F
userID=Convert.ToInt64(sqlcmd.ExecuteScalar()); ??
09/12 12:31, 1F

09/12 13:13, , 2F
userID = (Int64)sqlcmd.ExecuteScalar();
09/12 13:13, 2F

09/12 14:00, , 3F
我竟然忘記最原本的方法了 一直在改上面userID的型別 囧
09/12 14:00, 3F

09/12 14:01, , 4F
感謝樓上兩位前輩指導!
09/12 14:01, 4F

09/15 16:43, , 5F
btw,你的寫法會有sql injection安全問題。
09/15 16:43, 5F

09/20 01:50, , 6F
hint:改用SqlParameter class就不會有tomex說的問題
09/20 01:50, 6F
文章代碼(AID): #1AghP0da (C_Sharp)
文章代碼(AID): #1AghP0da (C_Sharp)