【发布时间】:2012-05-15 09:39:41
【问题描述】:
我以前也这样做过,但这次不行。
我要做的只是 COUNT() 表中未读消息的数量。
表格定义:
UserId(int), From(int), Type(nvarchar), Message(nvarchar), Read(bit)
Read 和 UserId 列是我要检查的内容。我尝试了以下方法:
database.QuerySingle("SELECT COUNT(*) AS NumberOfNotifications FROM Notifications WHERE UserId = @0 AND Read = CONVERT(bit,0)", userid);
我也尝试过许多其他版本,但结果总是一样。我总是收到以下错误:
“/”应用程序中的服务器错误。
关键字“读取”附近的语法不正确。描述:一个未处理的 执行当前 Web 请求期间发生异常。 请查看堆栈跟踪以获取有关错误的更多信息和 它起源于代码的地方。
异常详细信息:System.Data.SqlClient.SqlException:不正确 关键字“Read”附近的语法。
我想要做的是: “在 NOTIFICATIONSTABLE 中获取未读消息的数量,其中 USERID = @0 并且 READ = FALSE”
感谢任何帮助!
谢谢
更新
以下是我遇到问题的助手的完整代码。现在我已经修复了错误,我不知道为什么在我登录时它没有显示“您有新的通知消息” - 相应的表格中有 4 行。
@helper RetrievePhotoWithName(int userid)
{
var database = Database.Open("DUDE");
var name = database.QuerySingle("select FirstName, LastName, ProfilePicture from UserProfile where UserId = @0", userid);
var notifications = database.QuerySingle("SELECT COUNT(*) AS NumberOfNotifications FROM Notifications WHERE UserId = @0 AND [Read] = @1", userid, false);
var DisplayName = "";
if(notifications["NumberOfNotifications"] < 1)
{
DisplayName = name["FirstName"] + " " + name["LastName"];
}
else
{
DisplayName = name["FirstName"] + ", you have " + notifications["NumberOfNotifications"] + " new messages.";
}
<a href="@Href("~/Home")" title="My Account"><img src="@Href("~/Shared/Assets/Images/" + name["ProfilePicture"] + ".png")" id="MiniProfilePicture" /> @DisplayName</a>
database.Close();
}
【问题讨论】:
标签: c# sql database razor webmatrix