Обсуждение: System.InvalidCastException : Object cannot be cast from DBNull to other types

Поиск
Список
Период
Сортировка

System.InvalidCastException : Object cannot be cast from DBNull to other types

От
M. Bilgehan İMAMOĞLU
Дата:

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