检查SQL数据库中是否存在用户标识

时间:2016-05-09 21:56:20

标签: c# sql database user-input verification

我是初学程序员,我正在编写一个对数据库进行查询的C#应用​​程序。但是,我想知道如何检查ID是否存在(用户在控制台应用程序中输入ID),如果不存在,则显示消息。

这是我的代码:

Console.WriteLine("enter ID");

try
{
    var province_id = Convert.ToInt32(Console.ReadLine());

    var aquery2 = from test in context.BusinessEntityAddress
                  where test.Address.StateProvinceID == province_id
                  group test.BusinessEntity.Person.LastName by new { test.BusinessEntityID, test.BusinessEntity.Person.LastName, test.BusinessEntity.Person.FirstName } 
                        into balk
                  select new {
                               ...
                             };

没有粘贴整个代码,但这是我的问题所在的部分。在

where test.Address.StateProvinceID == userid

我想检查数据库中是否存在该ID,如果不存在,则显示消息。我不知道该怎么做。

请注意,所有代码都已在try{}catch{}中,因为我还需要确保用户输入是整数。

谢谢

4 个答案:

答案 0 :(得分:1)

您不应该使用ID M D V 1 7 6 10 2 5 5 来解决经典用户错误,例如数字解析。 try-catch就是这样做的:

int.TryParse()

答案 1 :(得分:1)

您似乎正在尝试做更多事情,然后只是在您的问题中搜索用户ID?您似乎在说StateProvinceId是用户ID吗?在这种情况下,这样的简单测试就足够了:

if (!context.Addresses.Any(a => a.StateProvinceID == userid))
{
   Console.WriteLine("User doesn't exist");
}

虽然,查看用户表似乎更合乎逻辑。 EG, context.Users 。因此,我们会质疑你为什么要做一个小组(不应该这样做)。

您需要将每个数据对象添加到您的上下文中,但如果您可以详细说明哪些内容无法正常工作,我们可以提供更多帮助。

答案 2 :(得分:1)

您不需要在尝试中运行代码,而是首先必须检查用户是否存在:

2016-05-09 22:07:19 +0000

为了检查字符串是否是有效整数,您应该使用int number; //check if the userId is an integer if(!int.TryParse(userId, out number)){ Console.WriteLine("Please enter a valid interger!!"); return; } var beAddress = context.BusinessEntityAddress; //check for the userId exist in the DB var flag = beAddress.Any(a => a.Address.StateProvinceID == number); if(flag){ //do something if the user exist } else{ //do something else if the user doesn't exist } ,这样您不仅可以检查字符串是否为数字,而且是否为整数。

答案 3 :(得分:0)

这是我正在使用的代码。我不知道控制台应用程序,但对C#和SQL知之甚少。我不确定我是否理解清楚,但希望这可能会对你有所帮助。谢谢。

bool idfound; (declare in the field of a Class)

private void buttonIDcheck_Click(object sender, RoutedEventArgs e)

(必须由Visual Studio创建的事件,而不是手动创建)

{
    SqlConnection Conn = new SqlConnection();
    Conn.ConnectionString = yourConnectionString;
    Conn.Open();

    SqlCommand check_idexistcomm = new SqlCommand();
    check_idexistcomm.Connection = Conn;
    check_idexistcomm.CommandText = "SELECT id FROM yourtable";

    var check_idexistda = new SqlDataAdapter(check_idexistcomm);

    SqlDataReader check_idexistreader = check_idexistcomm.ExecuteReader();
    while (check_idexistreader.Read())
    {
        if (check_idexistreader["id"].ToString()== text value inputed by user here)
        {   
          idfound = true;

          break;
        }
    }
    check_idexistreader.Close();
    Conn.Close();

    if (idfound=true)
    {
        your code here to accept the user as authorized
    }
    else
    {
        MessageBox.Show("Sorry, you're not authorized");
    }
}