C# 如何使值与表列上其范围内的行交互?

C# 如何使值与表列上其范围内的行交互?,c#,variables,datatable,C#,Variables,Datatable,我有一个数据表,像这样 在某些情况下,人们需要提供自己的测量值,可以是-5-4-3-2-1等。。。全部到35岁 我需要在测量结果值之间进行插值 我可以这样做 double usermeasurement; //user inserts the measurement in a textbox if(usermeasurement <5) { //interpolation between line 1 and line 2 of the table } else if (usermea

我有一个数据表,像这样

在某些情况下,人们需要提供自己的测量值,可以是-5-4-3-2-1等。。。全部到35岁

我需要在测量结果值之间进行插值

我可以这样做

double usermeasurement;
//user inserts the measurement in a textbox

if(usermeasurement <5)
{ //interpolation between line 1 and line 2 of the table
}

else if (usermeasurement <15)
{ //interpolation between line 2 and 3 of the table..
} 
// and so on...
我的编程问题是,是否有一种更简单、更高级的方法使usermeasurement变量适合于列度量


我可以创建自己的插值方法,但是有没有更简单的数学操作可以做到这一点呢?

如果您是从代码中的数据表中获取该方法的话

int userInput = 7;

DataTable dataTable = new DataTable();
dataTable.Columns.Add(new DataColumn("Measurement", typeof(int)));
dataTable.Columns.Add(new DataColumn("Value", typeof(string)));

dataTable.Rows.Add(-5, "-0,1");
dataTable.Rows.Add(5, "0,2");
dataTable.Rows.Add(15, "0,5");
dataTable.Rows.Add(25, "0,7");
dataTable.Rows.Add(35, "0,9");

int min = Convert.ToInt32(dataTable.Compute("MIN(Measurement)", "Measurement > " + userInput.ToString()));
int max = Convert.ToInt32(dataTable.Compute("MAX(Measurement)", "Measurement < " + userInput.ToString()));
DataRow[] rows = dataTable.Select("Measurement = " + min.ToString() + " OR " + "Measurement = " + max.ToString());
如果要查询数据库,请使用以下查询

SELECT * FROM Measurements WHERE Measurement = (select MIN(Measurement) from Measurements WHERE Measurement > 16) OR Measurement = (select MAX(Measurement) from Measurements WHERE Measurement < 16)

你想直接从数据库中的表还是从代码中的数据表中获取它?@PraveenPaulose我不知道,这是我第一次尝试一种不那么愚蠢的方法。我想,无论什么东西更简单、更容易理解,我都找不到关于抓取的有用信息,不像查询,我想我更喜欢查询,除非您不推荐它。我有5个间隔,但是在很多不同的表上。哇,信息量很大,我以前听说过查询和获取,但不知道它是用来访问表的。你所说的选择、来源、地点等到底是什么意思?你能再详细一点吗?我还注意到,您将值定义为字符串,将度量定义为int,这是获取的要求吗@这是SQL结构化查询语言,一种用于管理关系数据库的语言。这是一个详尽的主题,你可以在互联网上找到关于这个主题的信息。我假设值为字符串,因为您的示例中有一个逗号。它可以是您想要的任何数据类型。我希望这能回答您的问题。不幸的是,不,我提出了一个dataselect命令,它创建了一个数组,工作得很好,但我认为它不接受变量作为搜索项,因为它通过字符串搜索,我将更新我的问题。无论如何,谢谢。我的答案的第一部分详细介绍了如何使用dataselect命令获得相同的结果。那不是答案吗?很抱歉,我没有仔细看一下,因为我找到了更多关于查询命令的信息,而且我已经被剥夺了近20个小时的睡眠:P再次,对此表示抱歉,你完全正确。谢谢你提醒我