[Okta Webinar] Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 447
  • Last Modified:

Creating a c# login form using ado

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
wilko100
Asked:
wilko100
  • 2
  • 2
  • 2
1 Solution
 
spprivateCommented:
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
 
jjardineCommented:
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
 
spprivateCommented:
0
Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

 
wilko100Author Commented:
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
 
jjardineCommented:
Sorry.. I think there is a mispelling..   should be cmd.Parameters   not paramaters    
0
 
wilko100Author Commented:
yes just realised! lol, works now, excellent, cheers for that
0

Featured Post

New feature and membership benefit!

New feature! Upgrade and increase expert visibility of your issues with Priority Questions.

  • 2
  • 2
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now