我是初学程序员,我正在编写一个对数据库进行查询的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{}
中,因为我还需要确保用户输入是整数。
谢谢
答案 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");
}
}