我正在嘗試使用基本ado.net過程計算數據庫表中某些int條目的平均值,但得到一個錯誤,指出該轉換無效。計算字段條目的平均值
try
{
int average;
string conn = @"Provider=Microsoft.Jet.OleDb.4.0;
Data Source=BookRateInitial.mdb";
OleDbConnection connection = new OleDbConnection(conn);
OleDbCommand cmd = connection.CreateCommand();
cmd.CommandText = @"SELECT AVG(rating) FROM bookRated WHERE title = 'the informers'";
connection.Open();
average = (int)cmd.ExecuteScalar();
Console.WriteLine("The average is thus {0}", average);
connection.Close();
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
這是計算數據庫中一組條目平均值的正確方法嗎?
親切的問候
您得到了什麼類型的異常。當您直接在數據庫上運行查詢時會發生什麼?你也有連接泄漏。把連接關閉在最後或使用「使用」(http://stackoverflow.com/questions/4085466/what-is-using-connection-in-the-code)。我還建議使用存儲過程,而不是將代碼放在代碼 – Ivo 2011-04-27 13:16:52
中。錯誤可能是因爲您的平均值有小數位,所以它無法轉換爲int。您需要將其舍入到無小數位,或截斷它。 – David 2011-04-27 13:18:10