Ich habe versucht, das gleiche zu verwenden. SqlConnection
y SqlCommand
Objekte zur Ausführung verschiedener Befehle.
Die erste prüft, ob es sich um ein Duplikat handelt, und die zweite fügt die Daten ein, wenn es sich bei den vom Benutzer eingegebenen Daten nicht um ein Duplikat handelt.
Hier ist ein Beispiel für meinen Code:
using (SqlConnection conn = new SqlConnection(ConnStr))
{
string Command = "SELECT CountryName FROM [Countries] WHERE CountryName = @Name";
using (SqlCommand comm = new SqlCommand(Command, conn))
{
comm.Parameters.Add("@Name", System.Data.SqlDbType.NVarChar, 20);
comm.Parameters["@Name"].Value = Name;
comm.Parameters.Add("@IsVisible", System.Data.SqlDbType.Bit);
comm.Parameters["@IsVisible"].Value = IsVisible;
conn.Open();
if (comm.ExecuteScalar() == null)
{
Command = "INSERT INTO [Countries] (CountryName, IsVisible) VALUES (@Name, @IsVisible);";
comm.ExecuteNonQuery();
}
}
Ich habe versucht, durch die Verwendung einer einzigen Verbindung eine Fahrt zur Datenbank zu sparen.
Das Problem ist:
Der erste Befehl läuft problemlos, aber der zweite Befehl, der die Daten in die Datenbank einfügt, funktioniert nicht (er fügt keine keine Datensätze in die Datenbank) und als ich versuchte, die betroffenen Zeilen anzuzeigen erhielt ich -1 !!
Die Frage ist:
Ist dies der ideale Weg, um zu prüfen, ob nach doppelten Datensätzen zu suchen, um ein einzigartiges Land zu beschränken? und warum wird der zweite Befehl nicht ausgeführt wird?