2017-07-31 31 views
2

當我試圖用npgsqlcommand在C#Postgres的執行INSERT查詢時,程序的執行是暫停向cmd.ExecuteNonQuery(); 這裏是我的代碼插入在C#中使用Npgsql的

public void Insert(Mouvement mvt) 
    { 
     NpgsqlConnection conn = null; 
     NpgsqlCommand cmd = null; 
     try 
     { 
      conn = UtilDB.GetConnection(); 
      String sql = "INSERT INTO MOUVEMENT(ID_AERONEF,ID_PF,ID_ESCALE,DATE,SENS,NVOL,PISTE,BLOC,PAXC,PAXY,PAXBB,PAXEXO," + 
       "TRANSITDIRECT,TRANSITRI,TRANSITRRLC,CONTINU,PN,FRETPAYANT,FRETGRATUIT,BAGAGE,POSTE,MODE,BALISAGE,OBSERVATION) "+ 
       "VALUES (:id_aeronef,:id_pf,:id_escale,:date,:sens,:nvol,:piste,:bloc,:paxc,:paxy,:paxbb,:paxexo," + 
       ":transitdirect,:transitri,:transitrrlc,:continu,:pn,:fretpayant,:fretgratuit,:bagage,:poste,:mode,:balisage,:observation)"; 
      conn.Open(); 
      cmd = new NpgsqlCommand(sql, conn); 
      cmd.Parameters.Add("id_aeronef", mvt.Aeronef.Id); 
      cmd.Parameters.Add("id_pf", mvt.Plateforme.Id); 
      cmd.Parameters.Add("id_escale", mvt.Escale.Id); 
      cmd.Parameters.Add("date", mvt.Date); 
      cmd.Parameters.Add("sens", mvt.Sens); 
      cmd.Parameters.Add("nvol", mvt.Nvol); 
      cmd.Parameters.Add("piste", mvt.Piste); 
      cmd.Parameters.Add("bloc", mvt.Bloc); 
      cmd.Parameters.Add("paxc", mvt.PaxC); 
      cmd.Parameters.Add("paxy", mvt.PaxY); 
      cmd.Parameters.Add("paxbb", mvt.PaxBB); 
      cmd.Parameters.Add("paxexo", mvt.PaxExo); 
      cmd.Parameters.Add("transitdirect", mvt.TransitDirect); 
      cmd.Parameters.Add("transitri", mvt.TransitRI); 
      cmd.Parameters.Add("transitrrlc", mvt.TransitRRLC); 
      cmd.Parameters.Add("continu", mvt.Continu); 
      cmd.Parameters.Add("pn", mvt.Pn); 
      cmd.Parameters.Add("fretpayant", mvt.FretPayant); 
      cmd.Parameters.Add("fretgratuit", mvt.FretGratuit); 
      cmd.Parameters.Add("bagage", mvt.Bagage); 
      cmd.Parameters.Add("poste", mvt.Poste); 
      cmd.Parameters.Add("mode", mvt.Mode); 
      cmd.Parameters.Add("balisage", mvt.Balisage); 
      cmd.Parameters.Add("observation", mvt.Observation); 
      cmd.Prepare(); 
      cmd.CommandType = CommandType.Text; 
      cmd.ExecuteNonQuery(); 
     } 
     catch (Exception ex) 
     { 
      throw ex; 
     } 
     finally 
     { 
      if(cmd!=null) cmd.Dispose(); 
      if(conn!=null) conn.Close(); 
     } 
    } 
+0

暫停您的意思是觸發異常?,您能告訴我們該異常消息嗎?您能否確保您的連接正常? – Ferus7

+0

不,沒有例外,只是程序不會繼續執行 –

回答

1

最後,這是一個問題類型:我在數據庫中有character(1),但在C#中有String(10)