Solved

Creating a c# login form using ado

Posted on 2009-04-08
6
438 Views
Last Modified: 2013-12-17
Hi

im pretty new to C#.net and want to create a login form using an ADO connection to check password in a SQl db and if the pasword is correect then load up the frmMain. I have created the form with 2 controls (txtUserName and txtPassword) and 2 fields called UserName and Password in table SystemUsers, established connection to my SQL db but im stuck on the bit that goes away and checks the table, any help would be appreciated!!
i have uploaded the code i have done so far
using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Data.SqlClient;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;
 

namespace ClientDetailsApplication1

{

    public partial class frmLogin : Form

    {

        public frmLogin()

        {

            InitializeComponent();

        }     

       

            

        private void btnEnter_Click(object sender, EventArgs e)

        {

            System.Data.SqlClient.SqlConnection conn = new      System.Data.SqlClient.SqlConnection();

            conn.ConnectionString = "integrated security=SSPI;data source=<sqlInstanceName;" +

            "persist security info=False;initial catalog=<database>";

            try

            {

             //if succesful login then open connection and display Main form

                conn.Open();  

                frmMain frmMainDialog = new frmMain();

                frmMainDialog.Show();          

            }

            catch

            {

                MessageBox.Show("Incorrect User name or Password");

            }

            

        }                                                            

                    

                   

       }

}

Open in new window

0
Comment
Question by:wilko100
  • 2
  • 2
  • 2
6 Comments
 
LVL 15

Expert Comment

by:spprivate
ID: 24102216
Create this storedprocedure and pass the parameters from your form.
Get the out put flag check for it in the if condition and act accordingly.
Create Procedure CheckValid

@UserName varchar,

@Password varchar,

@returnflag varchar output

as
 
 
 

select *  from UserLogin where username=@Username and pwd=@Password
 
 

if @@rowcount>=1

Begin

     set @returnflag='T'

     

end
 

else
 

Begin

      set @returnflag='F'

end      

Open in new window

0
 
LVL 14

Expert Comment

by:jjardine
ID: 24102229
You need to create a command and execute a reader or some other method to compare the data.   You could do it like this replace your conn.Open call with this code:

using (SqlCommand cmd = new SqlCommand())
{
     cmd.Connection = conn;
     cmd.CommandText = "SELECT UserName FROM SystemUsers WHERE UserName = @UserName AND Password = @Password");
     cmd.Paramaters.AddWithValue("@UserName",txtUserName.Text);
     cmd.Parameters.AddWithValue("@Password",txtPassword.Text);

     cmd.Connection.Open();

     SqlDataReader reader = cmd.ExecuteReader();

     if(reader.HasRows)  // The user must exist and is logged in
         log in
     else                          //  No matching records.. user doesn't exist
         show error message

    cmd.Connection.Close();
}
0
 
LVL 15

Expert Comment

by:spprivate
ID: 24102243
0
PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

 

Author Comment

by:wilko100
ID: 24102552
when i apply jjardine fix i get this error..

Error      1      'System.Data.SqlClient.SqlCommand' does not contain a definition for 'Paramaters' and no extension method 'Paramaters' accepting a first argument of type 'System.Data.SqlClient.SqlCommand' could be found (are you missing a using directive or an assembly reference?)      

complaining about cmd.Paramaters is that anything to do with  a particular 'namespace' missing?


0
 
LVL 14

Accepted Solution

by:
jjardine earned 500 total points
ID: 24102625
Sorry.. I think there is a mispelling..   should be cmd.Parameters   not paramaters    
0
 

Author Comment

by:wilko100
ID: 24102667
yes just realised! lol, works now, excellent, cheers for that
0

Featured Post

Microsoft Certification Exam 74-409

Veeam® is happy to provide the Microsoft community with a study guide prepared by MVP and MCT, Orin Thomas. This guide will take you through each of the exam objectives, helping you to prepare for and pass the examination.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Exception Handling is in the core of any application that is able to dignify its name. In this article, I'll guide you through the process of writing a DRY (Don't Repeat Yourself) Exception Handling mechanism, using Aspect Oriented Programming.
Use this article to create a batch file to backup a Microsoft SQL Server database to a Windows folder.  The folder can be on the local hard drive or on a network share.  This batch file will query the SQL server to get the current date & time and wi…
Learn how to create flexible layouts using relative units in CSS.  New relative units added in CSS3 include vw(viewports width), vh(viewports height), vmin(minimum of viewports height and width), and vmax (maximum of viewports height and width).
Many functions in Excel can make decisions. The most simple of these is the IF function: it returns a value depending on whether a condition you describe is true or false. Once you get the hang of using the IF function, you will find it easier to us…

920 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now