繁体   English   中英

检查数据库中是否存在行

[英]Check if row exists in database

我有一个数据库,想检查特定的记录是否已经存在。

string sql = "SELECT COUNT(*) from tbl_student WHERE email = '" + mail + "' AND telephone= '" + telephone + "'";
NpgsqlCommand command = new NpgsqlCommand(sql, conn);
int userCount = (int)command.ExecuteScalar();
if (userCount > 0)
{
    lblMessage.Text = "Person already exists";
}

该行不起作用。 错误消息说这是无效的转换。 我不知道,请帮助我。

int userCount = (int)command.ExecuteScalar();

谢谢你们的帮助。 我尝试了您的许多建议,但它们没有起作用。 然后,我接受了简短建议,并将其存储到var变量中。 然后,我将var类型转换为int。

这是我现在正在工作的代码:

var result = command.ExecuteScalar();
int i = Convert.ToInt32(result);    
if (i == 0)
{
    lblMessage.Text = "Person does not exist";
}
else
{
    lblMessage.Text = "Person exists";
}

我怀疑问题在于它返回了long或相似。 尝试使用:

int userCount = Convert.ToInt32(command.ExecuteScalar());

如果这样不起作用:问一下它是什么:

object val = command.ExecuteScalar()
Debug.WriteLine(val.GetType().FullName);

请尝试这段代码,

object s = sql.ExecuteScalar();
if (s != null)
{
    Console.WriteLine("Query returned value.");
}
else
{
    Console.WriteLine("Query returned nothing.");
}

command.ExecuteScalar(); 将返回结果集中第一行的第一列;如果结果集为空,则返回空引用。

它无法产生int值

像这样做

if(command.ExecuteScalar() != null){
lblMessage.Text = "Person already exists";
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM