从MySql数据库读取平均值。C#ASP.NET
我的页面中有以下代码:从MySql数据库读取平均值。C#ASP.NET,c#,mysql,asp.net,C#,Mysql,Asp.net,我的页面中有以下代码: protected void Page_Load(object sender, EventArgs e) { conn.Open(); string selectQuery = @"SELECT AVG(odometer_reading),truck_id FROM inspection WHERE date BETWEEN '2015-12-01' AND '2016-06-01' GROUP
protected void Page_Load(object sender, EventArgs e)
{
conn.Open();
string selectQuery = @"SELECT AVG(odometer_reading),truck_id FROM
inspection WHERE date BETWEEN '2015-12-01' AND '2016-06-01'
GROUP BY truck_id";
MySqlCommand cmd = new MySqlCommand(selectQuery, conn);
MySqlDataReader reader = cmd.ExecuteReader();
foreach (DbDataRecord rowData in reader)
{
populateTable(rowData);
}
}
private void populateTable (DbDataRecord rowData)
{
TableRow tr = new TableRow();
TableCell cell1 = new TableCell();
cell1.Text = rowData.GetString(rowData.GetOrdinal("AVG(odometer_reading)")).ToString();
tr.Cells.Add(cell1);// Error
TableCell cell2 = new TableCell();
cell2.Text = rowData.GetString(rowData.GetOrdinal("truck_id")).ToString();
tr.Cells.Add(cell2);
tbl_TruckEfficiency.Rows.Add(tr);
}
我收到一个错误,无法将'System.Double'类型的对象强制转换为'System.String'。
这可能是什么原因造成的
或
是否有其他方法获取AVG(里程表读数)
以将其发送到cell1.text
忽略其数据类型以避免错误。谢谢 试试这个
cell1.Text=rowData["AVG(odometer_reading)"].ToString();
试试这个
cell1.Text=rowData["AVG(odometer_reading)"].ToString();
尝试给
AVG(里程表读数)
一个别名,例如AVG(里程表读数)作为AverageRead
并使用此别名获取datarowData。GetOrdinal将获取列位置而不是值。在实现alias后尝试使用GetDecimal或GetDouble,正如我的里程表读数所指出的那样有一个varchar数据类型意味着它是一个带有数值的字符串,所以我这样做了object value=Convert.ToDouble(rowData.GetString(rowData.GetOrdinal(“AverageOdo”)).ToString();cell1.Text=value.ToString()代码>相同的结果尝试将AVG(里程表读数)
一个别名,例如AVG(里程表读数)作为AverageRead
并使用此别名获取数据行数据。GetOrdinal将获取列位置,而不是值。在实现alias后尝试使用GetDecimal或GetDouble,正如我的里程表读数所指出的那样有一个varchar数据类型意味着它是一个带有数值的字符串,所以我这样做了object value=Convert.ToDouble(rowData.GetString(rowData.GetOrdinal(“AverageOdo”)).ToString();cell1.Text=value.ToString()代码>相同的结果