ADO.NET 로그 인 사례 만 들 기

4780 단어 ADO.NET로그 인
전체적인 사고방식.사용자 가 입력 한 사용자 이름과 비밀번호 에 따라 데이터베이스 에 저 장 된 것 과 같은 지 아 닌 지 를 판단 한다.만약 에 똑 같 으 면 로그 인 성공 을 나타 낸다.그렇지 않 으 면 로그 인 에 실패 할 것 이다.
프로젝트 1:
1.select*from 표 이름 where username="사용자 가 입력 한 사용자 이름" 
2.reader.Read(),즉 사용자 이름 이 존재 한다 면 사용자 가 입력 한 비밀번호 와 가 져 온 비밀번호(reader.GetString(reader.GetOridinal("비밀번호 필드")가 같은 지 판단 하고,같은 경우 로그 인 에 성공 하지 않 으 면 로그 인 에 실패 합 니 다.
프로젝트 2: 
select*from 표 이름 where username="사용자 가 입력 한 사용자 이름"and password="사용자 가 입력 한 비밀번호"데 이 터 를 찾 으 면 로그 인 에 성공 합 니 다.그렇지 않 으 면 로그 인 에 실패 합 니 다. 
다음은 프로젝트 1 을 사용 하여 로그 인 사례 를 만 듭 시다.
여기,편 의 를 위해 콘 솔 애플 리 케 이 션 을 사용 하 세 요.
전주:
나 는 이번에 연결 문자열 을 설정 파일 에 쓸 것 이다. 
1.우선 네 임 스페이스 의 인용 을 추가 해 야 합 니 다:System.configuration; 
2.그리고 우리 의 프로필 AppConfig 에 있 는노드 아래 에 연결 문자열 과 관련 된 노드 정 보 를 추가 합 니 다. 

<configuration>
<connectionStrings>
 <add name="ConStr" connectionString="server=.;database=DB_USERS;uid=sa;pwd=Pasword_1"/>
 </connectionStrings>
 <startup> 
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
 </startup>
</configuration>
빨간색 색상 을 표시 하 는 곳 은 우리 가 추가 한 연결 문자열 노드 정보 입 니 다. 
3.그 다음 에 저 는 DBHelper 류 를 만 들 고 그 안에'연결 문자열'을 가 져 오 는 방법 을 설명 하 는 습관 이 있 습 니 다.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Configuration;//           ,               

namespace ADO.NET    1
{
  public class DBHelper
  {
    public static string GetConnectionStrings()
    {
      //  ConfigurationManager ,           。
      return ConfigurationManager.ConnectionStrings["ConStr"].ConnectionString;
    }
  }
}

4.이번에 도 저 는 저장 과정 을 사용 하여 사용자 이름 에 따라 조회 하 는 저장 과정 을 만 듭 니 다.

IF OBJECT_ID('Ins_User','P') IS NOT NULL 
 DROP PROCEDURE Ins_User
 GO
 CREATE PROCEDURE Ins_User
 @name NVARCHAR(20)

 AS 
 SELECT * FROM dbo.T_USERS WHERE T_NAME=@name
 GO 

저장 프로시저
전기의 준비 작업 을 다 한 후에 지금 우 리 는 프로그램 을 작성 하고 인 코딩 을 실현 합 니 다.
사고:방안 1.먼저,우 리 는 당연히 사용자 에 게 사용자 이름과 비밀 번 호 를 입력 하 게 한 다음 에 사용자 가 입력 한 사용자 이름 에 따라 데이터 베이스 에 대응 하 는 표 에 관련 데이터 가 있 는 지,없 으 면 사용자 이름 이 존재 하지 않 는 다 는 것 을 알려 줍 니 다.있 으 면...사용자 가 입력 한 비밀번호 가 정확 한 지 계속 판단 합 니 다.(사용자 가 입력 한 비밀번호 와 데이터 베이스 에 대응 하 는 비밀 번 호 를 가지 고 판단 합 니 다)정확 하면 로그 인 성공 을 알 립 니 다.그렇지 않 으 면 비밀번호 오 류 를 알 립 니 다. 
*여기 서 저 는 매개 변수 조 회 를 사용 하여 로그 인 사례 를 작성 합 니 다.SQL 주입 공격 을 방지 하기 위해 서 입 니 다.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.Data.SqlClient;

namespace ADO.NET    1
{
  class Program
  {
    static void Main(string[] args)
    {
      //         
      Console.WriteLine("      :");
      //  Console.ReadLine()         
      string userName = Console.ReadLine();
      //        
      Console.WriteLine("     :");
      string password = Console.ReadLine();


      //        ADO.NET  ,       

      //      
      //1.      (     )
      SqlConnection scon = new SqlConnection(DBHelper.GetConnectionStrings());

      //2.      (           )
      SqlCommand scmd = new SqlCommand();
      scmd.CommandText = "Ins_User";
      scmd.CommandType = CommandType.StoredProcedure;
      scmd.Connection = scon;

      //3    
      scon.Open();


      //    
      scmd.Parameters.Add(new SqlParameter("@name",userName.Trim()));

      //4.    
      SqlDataReader reader = scmd.ExecuteReader(CommandBehavior.CloseConnection);


      //5    
      if (reader.Read())
      {

        if (password.Trim().ToString() == reader["T_PWD"].ToString())
        {
          Console.WriteLine("    ");
        }
        else
        {
          Console.WriteLine("    ");
        }
      }
      else
      {
        Console.WriteLine("      ");
      }
      //          
      reader.Dispose();
      Console.ReadKey();

    }
  }
}

이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기