2012-10-28 3 views
-3

VS2010 C#에서 작업 중입니다.사용자 이름이 데이터 테이블에 있는지 확인 #

____________ 
andy | 1234 
joni | 5678 
lara | 4567 

가 어떻게 그것을 데이터베이스 또는없는 경우 사용자가 텍스트 상자 및 검토에 입력 한 내용을 볼 수 함수를 형성 않습니다

나는 사용자 이름과 암호를 포함하는 데이터 테이블이?

+0

이것은 제공하지 않은 세부 사항에 따라 다릅니다. DataTable은 어떻게 생겼을까요? –

+0

은 내가 충분히 제공 한 3 개의 칼럼이 아닙니까? 컬럼의 이름은 userName W password입니다. – jonatr

+0

기본 키? 유일성 제약 조건? 기타? 또한 모든 데이터가 이미'DataTable'에 있다고 가정합니다. 그러나 그것은 테이블을 채우기위한 코드를 포함하지 않았기 때문입니다. 그래서 추측해야합니다. –

답변

4

당신은 SQL Function를 작성하고 같은 것을 할 수있는 : 당신이 ADO.NET 사용할 수 있습니다 당신의 C# 프로그램에서 다음

CREATE FUNCTION [dbo].[CheckUserExists] (@User NVARCHAR(50)) 
RETURNS BIT 
AS 
BEGIN 
DECLARE @RetVal INT 

SELECT @RetVal = COUNT(User.UserId) 
FROM 
    Users 
WHERE 
    Users.Username = @User 

IF @RetVal > 0 
BEGIN 
    RETURN 1 
END 
    RETURN 0 
END 

및 수행

private bool UserExists(string username) { 
    SqlCommand cmd = new SqlCommand("CheckUserExists", conn); 

cmd.CommandType = CommandType.StoredProcedure; 

cmd.Parameters.Add(new SqlParameter("@User", username)); 

    SqlDataReader reader = cmd.ExecuteReader(); // execute the function 

    // return the response from the reader (1 if it is true, 0 for false) 
} 

당신은 다음을 수행하여 함수를 호출 할 수 있습니다 :

var userExists = UserExists("YourUser"); 

+1

데이터베이스, 설정 등에 따라 대소 문자를 구분할 수 있습니다. –

1

DataRow의 배열을 반환하는 데이터 테이블에서 select 문을 수행 할 수 있습니다.

DataRow[] foundRows = DataTable.Select("username = andy"); 
if(foundRows.Length > 0) 
{ 
Console.WriteLine("Username exists"); 
} 
관련 문제