编辑列中的所有行,数据表c#

编辑列中的所有行,数据表c#,c#,datatable,C#,Datatable,我有一个数据表,其中填充了一个已读入的文件中的数据。然后我希望编辑特定列中的所有行。在我的例子中,速度列除以1.6,从公里小时转换为英里小时 到目前为止,我已经尝试使用下面的代码,但得到的索引超出了范围 foreach (DataRow row in data_table.Rows) { row["Speed (KM/H)"] = speed[x]/1.6; } 下面是用文件填充数据表的代码 private void display_hrm_data() { /* arr

我有一个数据表,其中填充了一个已读入的文件中的数据。然后我希望编辑特定列中的所有行。在我的例子中,速度列除以1.6,从公里小时转换为英里小时

到目前为止,我已经尝试使用下面的代码,但得到的索引超出了范围

foreach (DataRow row in data_table.Rows) {
     row["Speed (KM/H)"] = speed[x]/1.6;
}
下面是用文件填充数据表的代码

 private void display_hrm_data() {
     /* array heart_rate_table set to heart_rate
      * adds each column
      * for every piece of data in heart_rate_table add rows
      */        
     data_table.Columns.Add("Heart Rate (BPM)", typeof(string));
     data_table.Columns.Add("Speed (KM/H)", typeof(int));
     data_table.Columns.Add("Cadence (RPM)", typeof(int));
     data_table.Columns.Add("Altitude (M)", typeof(int));
     data_table.Columns.Add("Power (Watts)", typeof(int));
     data_table.Columns.Add("Time (Seconds)", typeof(int));
     for (int x = 0; x < heart_rate.Count - 1; x++) {
         time = time + 1;
         data_table.Rows.Add(heart_rate[x],speed[x],cadence[x],altitude[x],power[x], time);
     }
     dgv_data.DataSource = data_table;
}
private void display\u hrm\u data(){
/*数组心率表设置为心率
*添加每列
*对于心率表中的每一条数据,添加行
*/        
data_table.Columns.Add(“心率(BPM)”,typeof(字符串));
数据表.列.添加(“速度(KM/H)”,类型(int));
数据表.列.添加(“Cadence(RPM)”,typeof(int));
数据表列添加(“高度(M)”,类型(int));
添加(“功率(瓦特)”,类型(int));
data_table.Columns.Add(“时间(秒)”,typeof(int));
对于(int x=0;x<心率计数-1;x++){
时间=时间+1;
数据表。行。加(心率[x]、速度[x]、节奏[x]、高度[x]、功率[x]、时间);
}
dgv_data.DataSource=数据_表;
}

您可以使用强类型的
字段
设置字段
扩展名,否则需要手动将字段从object强制转换为
int
。由于
x
似乎是无效索引,因此会出现
IndexOutOfRange
异常。使用列名

例如:

DataColumn speedCol = data_table.Columns["Speed (KM/H)"];
foreach (DataRow row in data_table.Rows)
{
    int oldSpeed = row.Field<int>(speedCol);
    row.SetField(speedCol, oldSpeed / 1.6); 
}
DataColumn speedCol=data_table.Columns[“速度(KM/H)”;
foreach(数据表中的DataRow行)
{
int oldSpeed=行字段(speedCol);
行设置字段(speedCol,oldSpeed/1.6);
}

x的速度是多少[x]?@apomene我正在读取文件中的行。它保存了大量数据,所以我使用for循环来读取特定的行。这里声明了速度,您在哪里使用x作为索引器?