我正在使用 MS SQL 数据库在网页/剃须刀上使用 c# 进行编码
我有一个包含以下列的表格
- 星期六1
- Sat2
- Sat3
- Sat4
- ...
- Sat25
我想遍历每一个,并将值分配给satAvail
我有以下
for (var i = 1; i < 26; i++)
{
satWeek = "Sat" + i;
satAvail = item.satWeek;
}
我想要相当于satAvail = item.Sat1;
我尝试了几条不同的线但没有快乐
我正在使用 MS SQL 数据库在网页/剃须刀上使用 c# 进行编码
我有一个包含以下列的表格
我想遍历每一个,并将值分配给satAvail
我有以下
for (var i = 1; i < 26; i++)
{
satWeek = "Sat" + i;
satAvail = item.satWeek;
}
我想要相当于satAvail = item.Sat1;
我尝试了几条不同的线但没有快乐
目前尚不清楚您使用的是 ORM 还是 ADO,但假设 ADO,您可以使用以下内容:
DataTable dt = new DataTable();
foreach (DataRow row in dt.Rows)
{
foreach (DataColumn column in dt.Columns)
{
var satAvail = row[column];
}
}
使用反射
var value = item.GetType().GetProperty("Sat" + i).GetValue(item, null);
如果你想要一个总和(假设 Sat1... Sat2 是整数)
var sum = 0;
for (var i = 1; i < 26; i++) {
sum +=(int)item.GetType().GetProperty("Sat" + i).GetValue(item, null);
}
satAvail = sum;
或 linq 方式:
var sum = Enumerable.Range(1, 25)
.Select(x => (int)item.GetType().GetProperty("Sat" + x).GetValue(item, null))
.Sum();
我不确定我是否清楚您的实际要求,但总的来说,在使用Database helper时,如果您想访问由 a Database.Query
orDatabase.QuerySingle
调用产生的列值,您可以使用点表示法或索引器来完成.
例如,您可能会通过以下方式获取数据:
var db = Database.Open("MyDatabase");
var item = db.QuerySingle("SELECT * FROM Mytable WHERE ID = 1");
如果您知道要访问名为 的列的值Sat1
,则可以使用item.Sat1
. 但是,如果列名表示为变量,则需要使用索引器:
var satWeek = "Sat" + "1";
var satAvail = item[satWeek];