This is an absolute howler. I cannot believe my own eyes, and I cannot believe nobody before me would have discovered this if it was a genuine bug in C#, so I\'m putting it
p.Add(":Column1", 1); p.Add(":Column2", "record 1"); p.Add(":Column3", null);
//NOTE i have added : to the parameter names to be recognised by oracle data client