I am now trying to create a login page, and am almost there, however, a strange error is occuring. When I click the Login button it comes back with this error:
Oops. The error: No value given for one or more required parameters.
SELECT strUserID, strPassword FROM Users WHERE strUserID='amamo'
my database is named SystemsLog.mdb the table is named Users, it is saved in the directory shown, and the UserID amamo is in there...so I don't know why its falling off at the UserID check...I even put [] around Users, but that didnt do anything..its probably something staring me in the face
<%@dotnet.itags.org. Page Language="C#" %>
<%@dotnet.itags.org. Register TagPrefix="MySite" TagName="Login" src="http://pics.10026.com/?src=login.ascx" %>
<%@dotnet.itags.org. import Namespace="System.Data" %>
<%@dotnet.itags.org. import Namespace="System.Data.OleDb" %>
<%@dotnet.itags.org. import Namespace="System.Web.Security" %>
<script runat="server"
private void Page_Load(Object sender, EventArgs E) {
if ((Page.IsPostBack)) {
string strDSN = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=H:\\Support Log Project\\c#login\\test\\SystemsLog.mdb";
string strSQL = "SELECT strUserID, strPassword FROM Users WHERE strUserID='" + MyLogin.UserID + "'";OleDbConnection myConn = new OleDbConnection(strDSN);
OleDbCommand myCmd = new OleDbCommand(strSQL, myConn);
OleDbDataReader dr = null;
try {
myConn.Open();
dr = myCmd.ExecuteReader();if(dr.Read()) {
if(dr.GetString(1).Trim() == MyLogin.Password.Trim()) {
FormsAuthentication.RedirectFromLoginPage(MyLogin.UserID, false);
}
else
Message.Text = "Sorry! Your login or password is incorrect. <br>Please log in again.";
}
else
{
Message.Text = "Sorry! Your login or password is incorrect. <br>Please log in again.";
}
}
catch(Exception myException) {
ErrorMessage.Text = "Oops. The error: " + myException.Message;
ErrorMessage.Text += "<br>" + strSQL;
}
finally {
myConn.Close();
}
}
}
my logon.ascx file contains this code
<%@dotnet.itags.org. Control Language="c#" %>
<script runat="server"
public String BackColor = "white";
public String UserID {
get {
return User.Text;
}
set {
User.Text = value;
}
}
public String Password {
get {
return Pass.Text;
}
set {
Pass.Text = value;
}
}
public bool IsValid {
get {
return Page.IsValid;
}
}</script>
<table style="BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; FONT: 10pt verdana; BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px solid" cellspacing="15">
<tbody>
<tr>
<td>
Login:</td>
<td>
<ASP:TextBox id="User" runat="server"></ASP:TextBox>
</td>
</tr>
<tr>
<td>
Password:</td>
<td>
<ASP:TextBox id="Pass" runat="server" TextMode="Password"></ASP:TextBox>
</td>
</tr>
<tr>
<td>
</td>
<td>
<ASP:Button id="Button1" runat="server" Text="Submit" OnServerClick="Submit_Click"></ASP:Button>
</td>
</tr>
<tr>
<td valign="top" align="middle" colspan="2">
<asp:RegularExpressionValidator id="Validator1" runat="server" ASPClass="RegularExpressionValidator" ControlToValidate="Pass" ValidationExpression="[0-9a-zA-Z]{6,}" Display="Dynamic" Font-Size="8pt">
Password must be >= 6 alphanum chars<br />
</asp:RegularExpressionValidator>
<asp:RequiredFieldValidator id="Validator2" runat="server" ControlToValidate="User" Display="Dynamic" Font-Size="8pt">
User ID cannot be blank<br />
</asp:RequiredFieldValidator>
<asp:RequiredFieldValidator id="Validator3" runat="server" ControlToValidate="Pass" Display="Dynamic" Font-Size="8pt">
Password cannot be blank<br />
</asp:RequiredFieldValidator>
</td>
</tr>
</tbody>
</table>
Please help!
thanks!I followed this article and got it working,
<<http://support.microsoft.com/kb/301240/EN-US/>
I know it is SQL Server based, but you might be able to convert it to Access backend.
0 comments:
Post a Comment