我使用的是 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/