簡體   English   中英

查找值是否在數據表的兩列之間

[英]Finding if value is between two columns in data table

在過去的一周中,我一直在尋找有關此問題的答案,但似乎找不到答案。

我編寫了一個程序來運行我玩的在線游戲的抽獎活動。 我的問題是我需要從主要獎品的圖紙中刪除重復項(新要求)。

現在我將數據庫加載到DataTable中,然后生成一個隨機數,然后需要查找該隨機數在DataTable的兩列之間的位置,即TicketNumberStartTicketNumberEnd 這就是我現在使用的LINQ。

var winner = from jnkDt in dt.AsEnumerable()
    where
    jnkDt.Field<int>("TicketNumberStart") > rndNumber &&
    jnkDt.Field<int>("TicketNumberEnd") < rndNumber
    select new
    {
        name = jnkDt.Field<string>("BuyerName")
    };
    foreach (var jnk in winner)
        tmpName = jnk.name.ToString();

我遇到的問題是,無論rndNumber是什么,它都會返回一個空白字符串。

我假設TicketNumberEnd 大於 TicketNumberStart ,在這種情況下,您的條件將永遠不會成立。 我懷疑您需要進行比較:

var winner = from jnkDt in dt.AsEnumerable()
    where
    jnkDt.Field<int>("TicketNumberStart") <= rndNumber &&
    jnkDt.Field<int>("TicketNumberEnd") >= rndNumber
....

要么

var winner = from jnkDt in dt.AsEnumerable()
    where
    rndNumber >= jnkDt.Field<int>("TicketNumberStart") &&
    rndNumber <= jnkDt.Field<int>("TicketNumberEnd") 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM