检查用户名是否在c#中的数据表中

时间:2012-10-28 17:20:50

标签: c# sql .net winforms datatable

我正在研究VS2010 c#。

我有一个包含用户名和密码的数据表:

____________
andy | 1234
joni | 5678
lara | 4567

如何形成一个功能,可以看到用户在文本框中输入的内容并查看它是否在数据库中?

2 个答案:

答案 0 :(得分:3)

您可以撰写SQL Function并执行以下操作:

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

然后在您的C#程序中,您可以使用ADO.NET并执行:

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");

http://www.csharp-station.com/Tutorials/AdoDotNet/Lesson07.aspx

答案 1 :(得分:1)

您可以对数据表执行select语句,该语句将返回DataRows的数组。

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