Asp.net中預存程序的使用
註:Parameters的Direction屬性:擷取或設定一個值,指示參數是只可輸入、只可輸出、雙向還是預存程序返回參數。它的取值範圍是ParameterDirection枚舉類型。
枚舉值及說明
枚舉名稱 |
說明 |
Input |
參數是輸入參數 |
InputOutput |
參數既是輸入,也是輸出參數 |
Output |
參數是輸出參數 |
ReturnValue |
傳回值 |
protected void Button1_Click(object sender, EventArgs e) { if (TextBox1.Text == Request.Cookies["ImageV"].Value) //使用驗證碼 { conn.Open(); SqlCommand cmd = new SqlCommand("login", conn); cmd.CommandType = CommandType.StoredProcedure; //CommandType屬性設定:這裡採用預存程序 cmd.Parameters.Add("@user", SqlDbType.VarChar, 20); cmd.Parameters.Add("@pwd", SqlDbType.VarChar, 20); cmd.Parameters["@user"].Value = UserName.Text; cmd.Parameters["@pwd"].Value = FormsAuthentication.HashPasswordForStoringInConfigFile(this.UserPwd.Text, "MD5"); cmd.Parameters.Add("@Return", SqlDbType.Bit, 2); cmd.Parameters["@Return"].Direction = ParameterDirection.Output; //要注意Output的大小寫 cmd.ExecuteNonQuery();//一定先執行,才可以獲得@Return值 conn.Close(); bool flag = Convert.ToBoolean(cmd.Parameters["@Return"].Value); // if (flag) { Response.Cookies["AdminCookies"].Value = UserName.Text; Response.Redirect("index.html"); } else //Response.Write("使用者名稱或密碼錯誤"); Response.Write("<script language='javascript'>alert('登陸失敗!使用者名稱或密碼輸入不正確!!');location='LoginProc.aspx'</script>"); } else { Response.Write("<script language='javascript'>alert('登陸失敗!驗證碼輸入不正確!!');location='LoginProc.aspx'</script>"); } }