如何使值与 table 列上其范围内的行交互?
How to make a value interact with lines within its range on a table column?
我有一个像这样的数据表。
在某些时候,人们将被要求提供自己的测量值,可以是 -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
变量适合列 measurement
?
我可以制作自己的插值方法,但是有更简单的数学运算吗?
如果您在代码中从 DataTable 中获取它
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)
我有一个像这样的数据表。
在某些时候,人们将被要求提供自己的测量值,可以是 -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
变量适合列 measurement
?
我可以制作自己的插值方法,但是有更简单的数学运算吗?
如果您在代码中从 DataTable 中获取它
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)