c# - 为什么 SQL Server CE Count() 返回负值?

标签 c# sql webmatrix

我使用的是 SQL Server CE,所以我不能使用条件语句。我正在尝试检查记录是否存在,如果存在,则更新它,如果不存在,则创建它。

我打印出检查值,它是 -1。

var db = Database.Open("DB2");

var check = "SELECT count(*) FROM QuestionnaireData WHERE ID=" + WebSecurity.CurrentUserId;

if (db.Execute(check) == 0)
{
    var insert = "INSERT INTO QuestionnaireData VALUES (@0, @1)";
    db.Execute(insert, WebSecurity.CurrentUserId, "TEST");
}
else {
    var update = "UPDATE QuestionnaireData SET Q1='" + "TEST" + "' WHERE ID=" + WebSecurity.CurrentUserId;
    db.Execute(update);
};

最佳答案

Execute() 报告的智能感知:

Executes a non-query SQL statement.

由于您实际上是在查询数据,因此您需要使用 Query() 方法之一。

因为您只需要一个值(计数),请使用 QueryValue():

Executes a SQL query that returns a single scalar value as the result.

试试这个:

var count = Convert.ToInt32(db.QueryValue(check));

关于c# - 为什么 SQL Server CE Count() 返回负值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26172223/

相关文章:

c# - EntityFramework 多个 Where

php - 在一个查询中删除而不是使用循环和 ifs

sql - 检查基于 'ancestry' 的 SQL 表中的继承属性

mysql - 在子查询中使用 order by case

asp.net - 如何使用 webmatrix 将图像添加到 iTextSharp 中的表格单元格

php - WebMatrix PHP 查询不起作用

c# - WebMatrix Helper 控制表在密码更改日期字段中显示错误时间

c# - 您会定义集合类型吗?如果会,如何定义?

c# - 如何使用 C# 淡入/淡出包含内容的面板

C# Richtextbox - 通过滚动并按住 ctrl 更改文本大小后获取文本大小