ich eine SQL-Anweisung, die ich durch OleDb bin ausführt, ist die Aussage etwas wie folgt aus:OleDbParameters und Parameternamen
INSERT INTO mytable (name, dept) VALUES (@name, @dept);
Ich füge Parameter an die OleDbCommand wie folgt aus:
OleDbCommand Command = new OleDbCommand();
Command.Connection = Connection;
OleDbParameter Parameter1 = new OleDbParameter();
Parameter1.OleDbType = OleDbType.VarChar;
Parameter1.ParamterName = "@name";
Parameter1.Value = "Bob";
OleDbParameter Parameter2 = new OleDbParameter();
Parameter2.OleDbType = OleDbType.VarChar;
Parameter2.ParamterName = "@dept";
Parameter2.Value = "ADept";
Command.Parameters.Add(Parameter1);
Command.Parameters.Add(Parameter2);
Das Problem, das ich habe, ist, wenn ich die Parameter hinzufügen, anders herum, dann die Spalten mit den falschen Werten (dh Name ist in der Abteilung Spalte und umgekehrt)
Command.Parameters.Add(Parameter2);
Command.Parameters.Add(Parameter1);
Meine Frage ist, was ist der Sinn der Parameternamen, wenn Parameterwerte nur in der Reihenfolge in die Tabelle eingefügt werden, in der sie Befehl hinzugefügt werden? Die Parameternamen scheinen redundant zu sein.
Jede Hilfe apprreciated, Danke, Gareth
Das etwas ärgerlich ist, na ja, den Code ändern, müssen Sie die Werte in der richtigen hinzufügen bestellen, Danke – Gaz
es ist verdammt nervig. Ernst. Und wenn Sie jemals ODBC ausprobieren, denke ich, Sie sind für "?" als param name oder so ähnlich (vor langer Zeit);) – TomTom
Seltsam, weil 'DbParameter' kein ParameterName-Feld hat - Sie würden denken, wenn 'OleDbParameter' den ParameterName nicht verwendet, würden sie ihn nicht der Klasse hinzufügen .. –