C#MySQL Parameters.AddWithValue

时间:2015-06-22 12:14:37

标签: c# mysql

您好我找到了在C#中为MySQL命令添加值的代码片段

MySqlCommand command = connection.CreateCommand();
command.CommandText = "INSERT INTO tb_mitarbeiter (Vorname) VALUES (?name)";
command.Parameters.AddWithValue("?name", mitarbeiter);
connection.Open();
command.ExecuteNonQuery();

现在我想将数据添加到多个coloumn,但如果我这样尝试:

command.Parameters.AddWithValue("?id", Projektid, "?projektnummer", Projektnummer, "?anlageDatumProjekt", Projektanlage, "?auftraggeberProjekt",Projektauftraggeber, "?bezeichnungProjekt", Projektbezeichnung, "?nachAufwand", nachAufwand, "?bemerkungProjekt",Projektbemerkung, "?matFremdKalk", matfremdkalk, "?maStundenKalk",mastundenkalk, "?maKostenKalk", makostenkalk, "?maZuschlagFixKalk", mazuschlagfixkalk, "?maZuschlagVarKalk",mazuschlagvarkalk, "?maschStundenKalk",maschstundenkalk, "?maschKostenKalk",maschkostenkalk, "?maschZuschlagFixKalk",maschzuschlagfixkalk, "?maschZuschlagVarKalk",maschzuschlagvarkalk, "?summeAuftragKalk",summeauftragkalk, "?matFremdErfasst",matfremderfasst, "?maStundenerfasst",mastundenerfasst, "?maSelbstkostenErfasst",maselbstkostenerfasst, "?maschStundenErfasst",maschstundenerfasst, "?maschKostenVariabelErfasst",maschkostenvariabelerfasst, "?maschKostenFixErfasst",maschkostenfixerfasst, "?gemeinKostenBerechnet",gemeinkostenberechnet, "?abschlagRechnungErfasst",abschlagrechnungerfasst, "?rabatt", rabatt);

它只是说

  

没有带有52个参数的AddWithValue重载。

我需要更改什么才能运行代码?

3 个答案:

答案 0 :(得分:1)

您尝试使用一个 AddWithValue方法添加所有52个参数及其值。你不能那样做。

首先,您需要在命令中使用列名定义所有参数,例如;

command.CommandText = "INSERT INTO tb_mitarbeiter (Vorname, id, projectnummber....) VALUES (?name, ?id, ?projektnummer....)";

然后,您需要在52种不同的AddWithValue方法中添加所有52个参数。

command.Parameters.AddWithValue("?name", mitarbeiter);
command.Parameters.AddWithValue("?id", Projektid);
command.Parameters.AddWithValue("?projektnummer", Projektnummer);
...
...

或者将所有这些添加到一个MySqlParameterCollection中,并将此集合添加到您的命令中;

command.Parameters.Add(MyParameterCollection);

答案 1 :(得分:0)

尝试仅为每个AddWidthValue添加一个值,如

command.Parameters.AddWithValue("?name", mitarbeiter);
command.Parameters.AddWithValue("?id", Projektid);
command.Parameters.AddWithValue("?projektnummer", Projektnummer)

等等。

斯文

答案 2 :(得分:0)

你需要自己添加每个sql参数

一个例子就是你的情况

    command.Parameters.AddWithValue("?id", Projektid);

    command.Parameters.AddWithValue("?pr1ojektnummer", Projektnummer);

最后打电话给

    command.ExecuteNonQuery()