獲取查詢結果,這是我的函數:
從NpgsqlDataReader
public int gtCountCertificatByExercice()
{
DataTable resDataTable = new DataTable();
DBConnection dbConnection = new DBConnection();
string query = "SELECT COUNT(id) as nb_cert " +
"From crs_certificat " +
"WHERE id_exercice = " + IdExercice + " ";
NpgsqlConnection conn = dbConnection.Conn;
NpgsqlCommand cmd = conn.CreateCommand();
cmd.CommandText = query;
Int32 nbCertByExercice = 0;
try
{
conn.Open();
NpgsqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
nbCertByExercice = reader.GetInt32(0);
}
MessageBox.Show("" + nbCertByExercice);
}
catch (Exception ex)
{
Console.WriteLine(ex.StackTrace);
MessageBox.Show(ex.Message);
}
conn.Close();
return nbCertByExercice;
}
,我總是得到這個錯誤:「指定的轉換無效」!
但是當我使用這個:
while (reader.Read())
{
nbCertByExercice = Int32.Parse(reader["nb_cert"].ToString());
}
它工作正常!
和同樣的問題DateTime類型!
我應該怎麼做做得到領域的直接類型?
什麼是'讀取器[ 「nb_cert」]的值。的ToString()'? –
值爲「int」 –
確定嗎?所以'COUNT(id)作爲nb_cert'返回'「int」'?如果您在數據庫上執行該查詢會怎麼樣? –