.Net Core Npgsql Vorbereitete Anweisung
Ich habe versucht, einige SQL-Anweisungen in einer .Net Core-App so zu ändern, dass sie mithilfe von vorbereiteten Anweisungen wiederverwendbarer sind, aber ich habe Probleme mit dem NpgsqlDbType.
Ich habe versucht, den Dokumentationsanweisungen zu folgen.
NpgsqlCommand command = new NpgsqlCommand (
" select * from computers where com_phys = @com_phys ",
dbconnection
);
command.Parameters.Add("com_phys", NpgsqlDbType.Varchar);
command.Prepare();
Aber es kann nicht kompiliert werden
The name 'NpgsqlDbType' does not exist in the current context
Vermisse ich etwas Wie verwende ich den NpgsqlDbType?
AKTUALISIEREN
Ich stelle hier nur die letzte Arbeit vor, falls es jemand anderem zugute kommen kann
// prepare
NpgsqlCommand command = new NpgsqlCommand (
" select * from computers where com_phys = @com_phys ",
dbconnection
);
var param01 = command.Parameters.Add("com_phys", NpgsqlDbType.Varchar);
command.Prepare();
// execute 01
param01.Value = "value01";
var results = command.ExecuteReader();
while(results.Read()) {
// nothing
}
command.Close();
// execute 02
param01.Value = "value02";
var results = command.ExecuteReader();
while(results.Read()) {
// nothing
}
command.Close();
Antworten
NpgsqlDbType befindet sich im NpgsqlTypes-Namespace. Stellen Sie sicher, dass Sie oben NpgsqlTypes verwenden.
Wenn Sie den Wert gleichzeitig festlegen möchten, verwenden Sie AddWithValueanstelle vonAdd
NpgsqlCommand command = new NpgsqlCommand (
" select * from computers where com_phys = @com_phys ",
dbconnection
);
command.Parameters.AddValue("com_phys", NpgsqlDbType.Varchar, value);
// OR command.Parameters.AddValue("com_phys", NpgsqlDbType.Varchar, size, value);
// OR command.Parameters.AddValue("com_phys", value);
command.Prepare();
Wenn Sie den Parameter einmal hinzufügen und mehrmals ausführen möchten, können Sie einen Verweis auf den Parameter behalten
var parameter = command.Parameters.Add("com_phys", NpgsqlDbType.Varchar);
// Later, in a loop
parameter.Value = "someValue";