Обсуждение: System.InvalidCastException : Object cannot be cast from DBNull to other types
System.InvalidCastException : Object cannot be cast from DBNull to other types
Hi,
I write a program with C#.
When i try to execute SQL query with pgAdmin III Query tool, i can see all data successfully.
But i get “System.InvalidCastException : Object cannot be cast from DBNull to other types” error when execute sql query with c# codes.
I can see BASLIK,FO1,FO2,FO3 and FO4 coluns with query in C#.
But other columns have NULL value.
My code is like this;
string _TEKLIF_ALANI = null;
switch(cmb_birim_secim.SelectedItem.Value)
{
case "1":
_TEKLIF_ALANI = "BIRIM_TEKLIF";
break;
case "2":
_TEKLIF_ALANI = "SAYMAN_TEKLIF";
break;
case "3":
_TEKLIF_ALANI = "BASKAN_TEKLIF";
break;
case "4":
_TEKLIF_ALANI = "ENCUMEN_TEKLIF";
break;
case "5":
_TEKLIF_ALANI = "KOMISYON_TEKLIF";
break;
case "6":
_TEKLIF_ALANI = "KESIN_TEKLIF";
break;
}
string command = null;
command = "SELECT \"KURUMSAL\".\"BASLIK\" AS \"BIRIM_ADI\",CASE WHEN to_number(\"FONKSIYONEL\".\"KOD_1\",'9999')>0 THEN \"FONKSIYONEL\".\"KOD_1\" ELSE ' ' END AS \"FO1\",CASE WHEN to_number(\"FONKSIYONEL\".\"KOD_2\",'9999')>0 THEN \"FONKSIYONEL\".\"KOD_2\" ELSE ' ' END AS \"FO2\",CASE WHEN to_number(\"FONKSIYONEL\".\"KOD_3\",'9999')>0 THEN \"FONKSIYONEL\".\"KOD_3\" ELSE ' ' END AS \"FO3\",CASE WHEN to_number(\"FONKSIYONEL\".\"KOD_4\",'9999')>0 THEN \"FONKSIYONEL\".\"KOD_4\" ELSE ' ' END AS \"FO4\",CASE WHEN to_number(\"FINANSAL\".\"KOD_1\",'9999')>0 THEN \"FINANSAL\".\"KOD_1\" ELSE ' ' END AS \"FI1\",CASE WHEN to_number(\"EKONOMIK_GIDER\".\"KOD_1\",'9999')>0 THEN \"EKONOMIK_GIDER\".\"KOD_1\" ELSE ' ' END AS \"E1\",CASE WHEN to_number(\"EKONOMIK_GIDER\".\"KOD_2\",'9999')>0 THEN \"EKONOMIK_GIDER\".\"KOD_2\" ELSE ' ' END AS \"E2\",CASE WHEN to_number(\"EKONOMIK_GIDER\".\"KOD_3\",'9999')>0 THEN \"EKONOMIK_GIDER\".\"KOD_3\" ELSE ' ' END AS \"E3\",CASE WHEN to_number(\"EKONOMIK_GIDER\".\"KOD_4\",'9999')>0 THEN \"EKONOMIK_GIDER\".\"KOD_4\" ELSE ' ' END AS \"E4\",\"EKONOMIK_GIDER\".\"BASLIK\" AS \"ACIKLAMA\",\"GIDER_BUTCESI\".\"" + _TEKLIF_ALANI + "\" AS \"TEKLIF\",trim(both ' ' from to_char(\"GIDER_BUTCESI\".\"GIDER_ID\",'9999')) || '&secim=" + cmb_birim_secim.SelectedItem.Value + "' AS \"BUTCE_ID\" FROM \"KURUMSAL\",\"FONKSIYONEL\",\"FINANSAL\",\"EKONOMIK_GIDER\",\"GIDER_BUTCESI\" WHERE \"GIDER_BUTCESI\".\"KURUMSAL_ID\"=" + _kurum_kodu._getID + " AND \"GIDER_BUTCESI\".\"KURUMSAL_ID\"=\"KURUMSAL\".\"KURUMSAL_ID\" AND \"GIDER_BUTCESI\".\"FONKSIYONEL_ID\"=\"FONKSIYONEL\".\"FONKSIYONEL_ID\" AND \"GIDER_BUTCESI\".\"FINANSAL_ID\"=\"FINANSAL\".\"FINANSAL_ID\" AND \"GIDER_BUTCESI\".\"EKONOMIK_ID\"=\"EKONOMIK_GIDER\".\"EKONOMIK_ID\" AND \"GIDER_BUTCESI\".\"BIRIM_TEKLIF\">0 ORDER BY \"FONKSIYONEL\".\"KOD_1\",\"FONKSIYONEL\".\"KOD_2\",\"FONKSIYONEL\".\"KOD_3\",\"FONKSIYONEL\".\"KOD_4\",\"FINANSAL\".\"KOD_1\",\"EKONOMIK_GIDER\".\"KOD_1\",";
command += "\"EKONOMIK_GIDER\".\"KOD_2\",";
command += "\"EKONOMIK_GIDER\".\"KOD_3\"";
command += ",\"EKONOMIK_GIDER\".\"KOD_4\"";
DataTable dt = GenelClass.SelectSonucu(command);
double _PARA = 0;
for(int i=0; i<dt.Rows.Count; i++)
_PARA += Convert.ToDouble(dt.Rows[i]["TEKLIF"]);
lbl_toplam.Text = Convert.ToString(_PARA) + " YTL";
rptr_butce_fisi.DataSource = dt;
rptr_butce_fisi.DataBind();
thanks ,
Bilgehan