我知道这个问题似乎有点奇怪,但是我看了很多视频,代码,但仍然找不到任何解决方案。我正在尝试检查是否使用了用户名或电子邮件。但我想分别检查它们。第一个用户名,第二个电子邮件。我是一个初学者,所以我不知道我编写的代码是否正确,但这就是我编写的代码。也是在if-else这样的语句中。
那我该怎么做呢?如何在不关闭第一个SQL命令的情况下读取2条sql命令?
答案 0 :(得分:0)
// Check if username is taken
var command = new SqlCommand("SELECT * FROM YourTable WHERE userName=" userName ,
yourConnection);
var reader = command.ExecuteReader();
// Check if email is taken
var command = new SqlCommand("SELECT * FROM YourTable WHERE email=" email,
yourConnection)
command.ExecuteNonQuery();
答案 1 :(得分:0)
首先,我不确定为什么您坚持要在两个单独的查询中查找结果,并且在执行时也没有关闭第一个查询的命令(如果那是“不关闭第一个查询”的意思)第二个。
在我看来,您似乎想知道数据库中是否已经存在名称和电子邮件,是由同一个人(在db的同一记录中找到)还是由不同的人(在不同的记录中找到)使用的)。
您可以通过跟踪一个查询来实现。您可能会获得多条记录,对于每条记录,第三列match_type将阐明类型。
select kullaniciAdi, [Mail Adresi], 'BOTH' as match_type from kullanicilar
where kullaniciAdi = '<username text>' and [Mail Adresi] = '<mail address text>'
union
select kullaniciAdi, [Mail Adresi], 'ONLY_USER' as match_type from kullanicilar
where kullaniciAdi = '<username text>' and [Mail Adresi] <> '<mail address text>'
union
select kullaniciAdi, [Mail Adresi], 'ONLY_MAIL' as match_type from kullanicilar
where kullaniciAdi <> '<username text>' and [Mail Adresi] = '<mail address text>'
注意,查询中的表和/或列名称可能有错别字,因为在查看图像时容易出错。