c# - 使用 npgsql 在 C# 中插入

标签 c# postgresql npgsql

当我试图在 c# 中使用 npgsqlcommand 对 postgres 执行插入查询时,程序的执行暂停到 cmd.ExecuteNonQuery(); 这是我的代码

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();
        }
    }

最佳答案

最后,这是一个类型问题:我在数据库中有 character(1) 但在 C# 中有 String(10)

关于c# - 使用 npgsql 在 C# 中插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45412432/

相关文章:

SQL 查询以查找具有最匹配关键字的行

sql - PostgreSQL : how to do GROUP BY in this SQL

c# - Entity Framework Core - 复杂类型映射为 postgres 中的 jsonb 列,但 InMemory 提供程序的映射失败

c# - MVC WebImage OutputCache 导致内容类型为 text/html

c# - 在空格上拆分字符串并删除空条目

C# 通用应用程序 : automatically scroll to bottom of textbox after setting new text programmatically

c# - 如何将复合类型传递给 PL/pgsql 函数?

c# - 按 F5 时阻止页面刷新

postgresql - PostgreSQL 每日用户数

c# - Npgsql Entityframework - 看不到 ADO.net 实体数据模型的 Postgres 提供程序