Run db query IF querystring not null c# razor



我是c# Razor的新手,我想运行一个非常简单的过程——本质上我想运行一个新闻页面。如果页面链接包含一个ID,我希望页面根据该值查询数据库,例如:

var newsID = Request.QueryString["ID"];     
var datanewsitem = db.QuerySingle("SELECT * FROM News WHERE ID=@0", newsID);

如果没有值,我希望它选择表中的顶部记录,如下所示:

var datanewsitem = db.QuerySingle("SELECT Top 1 ID, Title, Date, Text
FROM news ORDER BY ID desc");

我正在尝试像这样执行检查:

if (Request.QueryString["ID"] != null) {
var newsID = Request.QueryString["ID"];    
var datanewsitem = db.QuerySingle("SELECT * FROM News WHERE ID=@0", newsID);        
}else{<br />
var datanewsitem = db.QuerySingle("SELECT Top 1 ID, Title, Date, Text, FROM news ORDER BY ID desc");}

然而,当我试图在IF语句中执行查询时,编译器失败了,告诉我datanewsitem。变量没有定义,当我试图调用它。

这可能是我对c#工作原理的理解中的一个根本缺陷,但是有人可以为我提供一个解决方案(举个例子)吗?快把我逼疯了!

这个问题很容易解决。

您在ifelse子句中分别定义了两次datanewsitem变量。这意味着它只能在它所属的子句中定义(称为变量的"作用域")

更改为:

myNewsType datanewsitem = null;
if (Request.QueryString["ID"] != null) {
   newsID = Request.QueryString["ID"];    
   datanewsitem = db.QuerySingle("SELECT * FROM News WHERE ID=@0", newsID);        
}else{<br />
   datanewsitem = db.QuerySingle("SELECT Top 1 ID, Title, Date, Text, FROM news ORDER BY ID desc");}

…其中myNewsTypedatanewsitem的类型名称。

相关内容

  • 没有找到相关文章

最新更新