C# MySQL Parameters.AddWithValue

本文关键字:AddWithValue Parameters MySQL | 更新日期: 2023-09-27 17:57:27

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

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

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

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没有重载。

我必须更改什么才能使代码运行?

C# MySQL Parameters.AddWithValue

您尝试使用一个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);

尝试像一样,每个AddWidthValue只添加一个值

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

等等

Sven

您需要单独添加每个sql参数。一个例子就是你的情况;

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

最后呼叫

command.ExecuteNonQuery();