伙计我试图将数据插入数据库,我使用以下代码:
String connectionString = "Provider=vfpoledb;Data Source=C:\\TESTE;Collating Sequence=machine;";
OleDbConnection FPDBConn = new OleDbConnection(connectionString);
FPDBConn.Open();
String strSQL = "INSERT INTO tercli ([id], [nome], [morada], [localidade], [codpostal], [telefone], [fax], [telemovel], [idcontr], [contribuin], [idzona], [zona], [idvendedor], [vendedor], [idpagament], [pagamento], [descontoge], [preco], [mapa], [dias], [plafond], [aviso], [email], [contacto], [rt_irs], [alim], [nru0], [cds0], [dtn0], [nru1], [nome1], [cds1], [dtn1], [nru2], [nome2], [cds2], [dtn2], [nru3], [nome3], [cds3], [dtn3], [nru4], [nome4], [cds4], [dtn4], [nru5], [nome5], [cds5], [dtn5], [dtini], [dtult], [dtprox], [obs], [agrup], [nbenef], [descontog1], [dtnasc], [activo], [cae], [resp], [ncontrato], [hst], [numexa], [numads], [numfunc], [cae1], [riva], [site], [datafac1], [datafac2], [bi], [carta], [sms], [mail], [prefer], [novo], [prof], [foto], [tel], [vlbi], [obs1], [prefer1], [distrito], [adesao], [sexo], [cpessoais], [nib], [balcao], [cproced], [dtfim], [pontostot], [pontosusa]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
OleDbCommand FPDBCmd = new OleDbCommand(strSQL, FPDBConn);
FPDBCmd.CommandType = CommandType.Text;
FPDBCmd.Parameters.AddWithValue("?", "5 ");
FPDBCmd.Parameters.AddWithValue("?", "Vitor");
FPDBCmd.Parameters.AddWithValue("?", " ");
FPDBCmd.Parameters.AddWithValue("?", " ");
FPDBCmd.Parameters.AddWithValue("?", " ");
FPDBCmd.Parameters.AddWithValue("?", " ");
FPDBCmd.Parameters.AddWithValue("?", " ");
FPDBCmd.Parameters.AddWithValue("?", "919042228");
FPDBCmd.Parameters.AddWithValue("?", " ");
FPDBCmd.Parameters.AddWithValue("?", " ");
FPDBCmd.Parameters.AddWithValue("?", " ");
FPDBCmd.Parameters.AddWithValue("?", " ");
FPDBCmd.Parameters.AddWithValue("?", " ");
FPDBCmd.Parameters.AddWithValue("?", " ");
FPDBCmd.Parameters.AddWithValue("?", " ");
FPDBCmd.Parameters.AddWithValue("?", " ");
FPDBCmd.Parameters.AddWithValue("?", 0.0000);
FPDBCmd.Parameters.AddWithValue("?", 0.0000);
FPDBCmd.Parameters.AddWithValue("?", "");
FPDBCmd.Parameters.AddWithValue("?", 0.000);
FPDBCmd.Parameters.AddWithValue("?", 0.0000);
FPDBCmd.Parameters.AddWithValue("?", "");
FPDBCmd.Parameters.AddWithValue("?", " ");
FPDBCmd.Parameters.AddWithValue("?", " ");
FPDBCmd.Parameters.AddWithValue("?", " ");
FPDBCmd.Parameters.AddWithValue("?", " ");
FPDBCmd.Parameters.AddWithValue("?", " ");
FPDBCmd.Parameters.AddWithValue("?", " ");
FPDBCmd.Parameters.AddWithValue("?", now);
FPDBCmd.Parameters.AddWithValue("?", " ");
FPDBCmd.Parameters.AddWithValue("?", " ");
FPDBCmd.Parameters.AddWithValue("?", " ");
FPDBCmd.Parameters.AddWithValue("?", now);
FPDBCmd.Parameters.AddWithValue("?", " ");
FPDBCmd.Parameters.AddWithValue("?", " ");
FPDBCmd.Parameters.AddWithValue("?", " ");
FPDBCmd.Parameters.AddWithValue("?", now);
FPDBCmd.Parameters.AddWithValue("?", " ");
FPDBCmd.Parameters.AddWithValue("?", " ");
FPDBCmd.Parameters.AddWithValue("?", " ");
FPDBCmd.Parameters.AddWithValue("?", now);
FPDBCmd.Parameters.AddWithValue("?", " ");
FPDBCmd.Parameters.AddWithValue("?", " ");
FPDBCmd.Parameters.AddWithValue("?", " ");
FPDBCmd.Parameters.AddWithValue("?", now);
FPDBCmd.Parameters.AddWithValue("?", " ");
FPDBCmd.Parameters.AddWithValue("?", " ");
FPDBCmd.Parameters.AddWithValue("?", " ");
FPDBCmd.Parameters.AddWithValue("?", now);
FPDBCmd.Parameters.AddWithValue("?", now);
FPDBCmd.Parameters.AddWithValue("?", now);
FPDBCmd.Parameters.AddWithValue("?", now);
FPDBCmd.Parameters.AddWithValue("?", " ");
FPDBCmd.Parameters.AddWithValue("?", " ");
FPDBCmd.Parameters.AddWithValue("?", " ");
FPDBCmd.Parameters.AddWithValue("?", 0.0000);
FPDBCmd.Parameters.AddWithValue("?", now);
FPDBCmd.Parameters.AddWithValue("?", " ");
FPDBCmd.Parameters.AddWithValue("?", 0.0000);
FPDBCmd.Parameters.AddWithValue("?", " ");
FPDBCmd.Parameters.AddWithValue("?", 0.0000);
FPDBCmd.Parameters.AddWithValue("?", " ");
FPDBCmd.Parameters.AddWithValue("?", 0.0000);
FPDBCmd.Parameters.AddWithValue("?", 0.0000);
FPDBCmd.Parameters.AddWithValue("?", 0.0000);
FPDBCmd.Parameters.AddWithValue("?", " ");
FPDBCmd.Parameters.AddWithValue("?", " ");
FPDBCmd.Parameters.AddWithValue("?", " ");
FPDBCmd.Parameters.AddWithValue("?", now);
FPDBCmd.Parameters.AddWithValue("?", now);
FPDBCmd.Parameters.AddWithValue("?", 0.0000);
FPDBCmd.Parameters.AddWithValue("?", 0.0000);
FPDBCmd.Parameters.AddWithValue("?", 0.0000);
FPDBCmd.Parameters.AddWithValue("?", 0.0000);
FPDBCmd.Parameters.AddWithValue("?", " ");
FPDBCmd.Parameters.AddWithValue("?", " ");
FPDBCmd.Parameters.AddWithValue("?", " ");
FPDBCmd.Parameters.AddWithValue("?", " ");
FPDBCmd.Parameters.AddWithValue("?", 0.0000);
FPDBCmd.Parameters.AddWithValue("?", now);
FPDBCmd.Parameters.AddWithValue("?", " ");
FPDBCmd.Parameters.AddWithValue("?", " ");
FPDBCmd.Parameters.AddWithValue("?", " ");
FPDBCmd.Parameters.AddWithValue("?", " ");
FPDBCmd.Parameters.AddWithValue("?", " ");
FPDBCmd.Parameters.AddWithValue("?", " ");
FPDBCmd.Parameters.AddWithValue("?", " ");
FPDBCmd.Parameters.AddWithValue("?", " ");
FPDBCmd.Parameters.AddWithValue("?", " ");
FPDBCmd.Parameters.AddWithValue("?", now);
FPDBCmd.Parameters.AddWithValue("?", 0.0000);
FPDBCmd.Parameters.AddWithValue("?", 0.0000);
FPDBCmd.ExecuteNonQuery();
FPDBCmd.Dispose();
FPDBConn.Close();
事情似乎是每次运行时只添加1个参数,而不是同时输入所有参数。
我一直在关注OleDbParameterCollection Class和OleDbParameter
数组,但由于我的参数类型各不相同(OleDbType.Char
,OleDbType.Numeric
,OleDbType.DBDate
和OleDbType.LongVarChar
)我不确定如何去做...
请你们帮帮忙吗?
答案 0 :(得分:1)
取代“?”对于您的参数,请尝试使用“@id”,“@ nome”,“@ morada”等所有参数。
然后在.ExecuteNonQuery()之前添加这一行:
FPDBCmd.ConvertNamedParametersToPositionalParameters();
FPDBCmd.ExecuteNonQuery();
ConvertNamedParametersToPositionalParameters()允许您使用命名参数,但它会将它们转换为问号。
有关详细说明,请参阅this related question