如何将多个具有值的 OldDbParameters 添加到单个 OleDbCommand?
How to add several OldDbParameters with values to a single OleDbCommand?
伙计们,我正在尝试将数据插入数据库,我正在使用以下代码:
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
) 我不太确定该怎么做...
请问你们能帮忙吗?
代替“?”对于您的参数,请尝试对所有参数使用“@id”、“@nome”、“@morada”等。
然后在.ExecuteNonQuery():
之前添加这一行
FPDBCmd.ConvertNamedParametersToPositionalParameters();
FPDBCmd.ExecuteNonQuery();
ConvertNamedParametersToPositionalParameters() 允许您使用命名参数,但它会为您将它们转换为问号。
有关更多说明,请参阅 this related question
伙计们,我正在尝试将数据插入数据库,我正在使用以下代码:
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
) 我不太确定该怎么做...
请问你们能帮忙吗?
代替“?”对于您的参数,请尝试对所有参数使用“@id”、“@nome”、“@morada”等。
然后在.ExecuteNonQuery():
之前添加这一行FPDBCmd.ConvertNamedParametersToPositionalParameters();
FPDBCmd.ExecuteNonQuery();
ConvertNamedParametersToPositionalParameters() 允许您使用命名参数,但它会为您将它们转换为问号。
有关更多说明,请参阅 this related question