Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在c中检查用户名是否在datatable中#_C#_Sql_.net_Winforms_Datatable - Fatal编程技术网

C# 在c中检查用户名是否在datatable中#

C# 在c中检查用户名是否在datatable中#,c#,sql,.net,winforms,datatable,C#,Sql,.net,Winforms,Datatable,我正在研究VS2010 c 我有一个包含用户名和密码的数据表: ____________ andy | 1234 joni | 5678 lara | 4567 如何形成一个函数,以查看用户在文本框中输入的内容,并查看它是否在数据库中?您可以编写一个SQL函数并执行以下操作: CREATE FUNCTION [dbo].[CheckUserExists] (@User NVARCHAR(50)) RETURNS BIT AS BEGIN DECLARE @RetVal INT SELECT

我正在研究VS2010 c

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

____________
andy | 1234
joni | 5678
lara | 4567

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

您可以编写一个
SQL函数
并执行以下操作:

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

您可以对datatable执行select语句,该语句将返回一个DataRows数组

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

这将取决于您尚未提供的详细信息。例如,DataTable看起来像什么?我给出的3列还不够吗?列的名称是用户名和密码。有主键吗?唯一性约束?等另外,我假设您的所有数据都已在
数据表中,但这只是因为您没有包含任何填充表的代码,所以我不得不猜测。请注意,这可能区分大小写,具体取决于数据库、设置等。