查找值是否在数据表的两列之间
本文关键字:两列 之间 是否 数据表 查找 | 更新日期: 2023-09-27 18:16:36
在过去的一周里,我一直在寻找这个问题的答案,但我似乎找不到答案。
我写了一个程序来运行我玩的在线游戏的抽奖。我遇到的问题是,我需要从主要奖品的抽奖中删除重复的奖品(新要求)。
我现在拥有的数据库被加载到一个数据表中,然后我生成一个随机数,然后我需要找到这个随机数落在数据表TicketNumberStart
和TicketNumberEnd
两列之间的位置。这是我现在使用的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")