Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在ASP中检查查询结果_C#_Asp.net - Fatal编程技术网

C# 在ASP中检查查询结果

C# 在ASP中检查查询结果,c#,asp.net,C#,Asp.net,在我的数据库中有一个名为News的表。在新闻中,我有一个名为Link的专栏。此链接可以为空。如果文章是由编辑编写的,则链接将为空;如果编辑只想引用另一个站点的文章,则此链接将包含一个值。 我的任务:为文章添加一个href。这里我有一个问题,如果我的编辑写的文章,我把a href的文章。如果它没有被写入(所以链接不是空的),我必须将href输入。 我不知道怎么做,有什么建议吗? 代码: 显示: <asp:DropDownList ID="DropDownSelect" runat="serv

在我的数据库中有一个名为News的表。在新闻中,我有一个名为Link的专栏。此链接可以为空。如果文章是由编辑编写的,则链接将为空;如果编辑只想引用另一个站点的文章,则此链接将包含一个值。 我的任务:为文章添加一个href。这里我有一个问题,如果我的编辑写的文章,我把a href的文章。如果它没有被写入(所以链接不是空的),我必须将href输入。 我不知道怎么做,有什么建议吗? 代码: 显示:

<asp:DropDownList ID="DropDownSelect" runat="server" AutoPostBack="True" 
            OnSelectedIndexChanged="DropDownSelect_SelectedIndexChanged">
       <asp:ListItem Selected="True" Value="DesDate"> Descending Date </asp:ListItem>
       <asp:ListItem Value="AsDate"> Ascending Date </asp:ListItem>
       <asp:ListItem Value="AsAlp"> Ascending Alphabetical </asp:ListItem>
       <asp:ListItem Value="DesAlp"> Descending Alphabetical </asp:ListItem>
        </asp:DropDownList>
<asp:ListView ID="productList" runat="server" 
                DataKeyNames="NewsID" GroupItemCount="1"
                ItemType="SiteStiri.Models.News" SelectMethod="GetProducts">
            <EmptyDataTemplate>
                    <table >
                        <tr>
                            <td>No data was returned.</td>
                        </tr>
                    </table>
                </EmptyDataTemplate>
                <EmptyItemTemplate>
                    <td/>
                </EmptyItemTemplate>
                <GroupTemplate>
                    <tr id="itemPlaceholderContainer" runat="server">
                        <td id="itemPlaceholder" runat="server"></td>
                    </tr>
                </GroupTemplate>
            <ItemTemplate>
                    <td runat="server">
                        <table>
                            <tr>
                                <td>
                                    <a href="NewsDetails.aspx?newsID=<%#:Item.NewsID%>">
                                        <img src="/Catalog/Images/Thumbs/<%#:Item.ImagePath%>"
                                            width="100" height="75" style="border: solid" /></a>
                                </td>
                            </tr>
                            <tr>
                                <td>
                                    <a href="NewsDetails.aspx?newsID=<%#:Item.NewsID%>">
                                        <p style="color: black;">
                                            <%#:Item.NewsTitle%>
                                        </p>
                                    </a>

                                </td>
                            </tr>
                            <tr>
                                <td>&nbsp;</td>
                            </tr>
                        </table>
                        </p>
                    </td>
                </ItemTemplate>
            <LayoutTemplate>
                    <table style="width:100%;">
                        <tbody>
                            <tr>
                                <td>
                                    <table id="groupPlaceholderContainer" runat="server" style="width:100%">
                                        <tr id="groupPlaceholder"></tr>
                                    </table>
                                </td>
                            </tr>
                            <tr>
                                <td></td>
                            </tr>
                            <tr></tr>
                        </tbody>
                    </table>
                </LayoutTemplate>
            </asp:ListView>
        </div>

在页面后面:

public IQueryable<News> GetProducts()
        {
            var _db = new SiteStiri.Models.NewsContext();
            IQueryable<News> query = _db.News;

            if ("DesDate".Equals(DropDownSelect.SelectedItem.Value))
            {
                query = query.OrderByDescending(u => u.ReleaseDate);
            }

            if ("AsDate".Equals(DropDownSelect.SelectedItem.Value))
            {
                query = query.OrderBy(u => u.ReleaseDate);
            }
            if ("AsAlp".Equals(DropDownSelect.SelectedItem.Value))
            {
                query = query.OrderBy(u => u.NewsTitle);
            }
            if ("DesApl".Equals(DropDownSelect.SelectedItem.Value))
            {
                query = query.OrderByDescending(u => u.NewsTitle);
            }

            return query;
        }

        public void DropDownSelect_SelectedIndexChanged(object sender, EventArgs e)
        {
            GetProducts();
            productList.DataBind();
        }
public IQueryable GetProducts()
{
var_db=newsitestiri.Models.NewsContext();
IQueryable查询=_db.News;
如果(“DesDate”.Equals(DropDownSelect.SelectedItem.Value))
{
query=query.OrderByDescending(u=>u.ReleaseDate);
}
如果(“AsDate”.Equals(DropDownSelect.SelectedItem.Value))
{
query=query.OrderBy(u=>u.ReleaseDate);
}
如果(“AsAlp”.Equals(DropDownSelect.SelectedItem.Value))
{
query=query.OrderBy(u=>u.newsttitle);
}
如果(“DesApl.Equals”(DropDownSelect.SelectedItem.Value))
{
query=query.OrderByDescending(u=>u.NewsTitle);
}
返回查询;
}
public void DropDownSelect\u SelectedIndexChanged(对象发送方,事件参数e)
{
GetProducts();
productList.DataBind();
}

如果链接为空或链接的链接不为空,我如何在此处放置指向我站点的页面链接?

要给出更详细的答案,请将链接列设置为
非空
,并将默认值设置为您的URL。也就是说,如果用户/新闻编辑器没有输入值,您的URL将添加到该字段中。这样做的好处是不需要任何代码来检查NULL等

此外,请确保UI验证使用正则表达式添加的URL,以防添加恶意值

如果你想在代码中修改它,你可以尝试这样的东西

public class News
{
    public string Title { get; set; }
    public string Url { get; set; }

    public IQueryable<News> GetNews()
    {
        var news = new List<News> {new News {Title = "News1", Url = "NewsURL"}, 
                                   new News {Title = "News1"}};
        return news.AsQueryable(); 
    }
}

我只是把这个小例子放在一起,展示如何更新链接。

你是说
NewsID
可以是
NULL
?不,表中有一个链接列,取决于它的值(如果它是NULL或否)我想引用我的页面或保存在“链接”列中的页面。为什么不在数据库中设置它,而不是签入代码?你可以将该列设置为
NOT NULL
,并给出你的URL的默认值。你相信我吗,4小时前我想到了这个,然后进入了另一个领域,然后我想解决这个问题,我完全忘记了这个想法,我再也没有想到它:D?我打开过的最愚蠢的帖子…对不起。嗯,有一种方法可以签入代码。这并不是那么愚蠢,也许我以后会使用它。thx Christiandevt非常感谢,我确实像你说的那样处理DB默认链接:DNo问题,我认为这是更干净、更有效的方法:)
var news = new News();
var initialNews = news.GetNews();

var newsWithLink = initialNews.Where(n => n.Url != null);
var newsWithOutLink = initialNews.Where(n => n.Url == null);

foreach (var newsItem in newsWithOutLink)
{
   newsItem.Url = "MyURL";
}

var newsToDisplay = newsWithLink.Concat(newsWithOutLink);