使用 npgsql 在 c# 中插入
Posted
技术标签:
【中文标题】使用 npgsql 在 c# 中插入【英文标题】:Insert in c# using npgsql 【发布时间】:2017-07-31 09:45:03 【问题描述】:当我尝试使用 npgsqlcommand 对 c# 中的 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();
【问题讨论】:
暂停你的意思是触发异常?,能不能给我们看一下那个异常Message?能保证你的conn没问题吗? 不没有例外,只是程序不要继续执行 【参考方案1】:最后,这是一个类型问题:我在数据库中有character(1)
,但在C#中有String(10)
【讨论】:
以上是关于使用 npgsql 在 c# 中插入的主要内容,如果未能解决你的问题,请参考以下文章
使用 Daper.Net 和 NPGSQL 将数据插入 PostgreSQL jsonb 列
尝试在同一连接中运行多个命令时 C# Winforms Npgsql 3.0.5“操作已在进行中”错误