INSERT με πολλαπλές γραμμές

Πληροφορίες σχετικές με την ASP, ASP.NET και με τις εφαρμογές που είναι γραμμένες με αυτήν.

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
mpempe
Δημοσιεύσεις: 156
Εγγραφή: 23 Ιουν 2003 02:48
Τοποθεσία: peloponisos

INSERT με πολλαπλές γραμμές

Δημοσίευση από mpempe » 19 Φεβ 2016 21:03

Γειά σας
σε μια asp.net σελίδα έχω τον παρακάτω κώδικα που αποθηκεύει στα πεδία Key1 και Value1 κάποια περιεχόμενα.

Κώδικας: Επιλογή όλων

    

Protected Sub Button2_Click(sender As Object, e As System.EventArgs)
        Dim command As OleDbCommand = New OleDbCommand()
        command.CommandType = CommandType.Text
        command.Connection = DB.GetConnection()
        command.CommandText = "INSERT INTO Phrases (Key1, Value1) VALUES ('keimeno111' , 'keimeno2')"
        command.Connection.Open()
        Try
            Dim recordsAffected As Integer = command.ExecuteNonQuery()
            If recordsAffected = 0 Then
                Session("info") = "Δεν έγινε αποθήκευση"
            Else
                Session("info") = "Αποθήκευση"
            End If
        Catch
            Session("info") = "Σφάλμα"
        Finally
            command.Connection.Close()
        End Try

    End Sub
Είναι δυνατόν να προσθέσω περισσότερες γραμμές με μια αποθήκευση;

Δοκίμασα το παρακάτω INSERT αλλα χωρίς αποτέλεσμα

Κώδικας: Επιλογή όλων

INSERT INTO Phrases (Key1, Value1) VALUES ('keimeno1' , 'keimeno1111'), ('keimeno2' , 'keimeno2222'), ('keimeno3' , 'keimeno3333'), ('keimeno4' , 'keimeno444')

ailouros
Δημοσιεύσεις: 212
Εγγραφή: 08 Ιούλ 2015 17:44

INSERT με πολλαπλές γραμμές

Δημοσίευση από ailouros » 24 Φεβ 2016 11:17

Πρέπει να το βάλεις σε ένα loop. Θα αλλάζεις κάθε φορά το CommandText και θα καλείς πάλι την command.ExecuteQuery.

mpempe
Δημοσιεύσεις: 156
Εγγραφή: 23 Ιουν 2003 02:48
Τοποθεσία: peloponisos

INSERT με πολλαπλές γραμμές

Δημοσίευση από mpempe » 26 Φεβ 2016 00:45

Κάτι τέτοιο εννοείς?

Κώδικας: Επιλογή όλων

        command.CommandText = "INSERT INTO Phrases ([Key], Value1) VALUES ('keimeno1', 'Τιτλος1')"
        command.ExecuteNonQuery()
        command.CommandText = "INSERT INTO Phrases ([Key], Value1) VALUES ('keimeno2', 'Τιτλος2')"
        command.ExecuteNonQuery()
        command.CommandText = "INSERT INTO Phrases ([Key], Value1) VALUES ('keimeno3', 'Τιτλος3')"
        command.ExecuteNonQuery()
        command.CommandText = "INSERT INTO Phrases ([Key], Value1) VALUES ('keimeno4', 'Τιτλος4')"
        command.ExecuteNonQuery()
        command.CommandText = "INSERT INTO Phrases ([Key], Value1) VALUES ('keimeno5', 'Τιτλος5')"
        command.ExecuteNonQuery()
        command.CommandText = "INSERT INTO Phrases ([Key], Value1) VALUES ('keimeno6', 'Τιτλος6')"
        command.ExecuteNonQuery()

ailouros
Δημοσιεύσεις: 212
Εγγραφή: 08 Ιούλ 2015 17:44

INSERT με πολλαπλές γραμμές

Δημοσίευση από ailouros » 26 Φεβ 2016 12:59

Ναι. Κι αν θες να το κάνεις παραμετροποιήσιμο ώστε να παίζει σε loop μπορείς να προσθέσεις και command parameters. Για παράδειγμα:
command.CommandText="INSERT INTO Phrases ([Key], Value1]) VALUES (@keimeno, @title);
command.Parameters.AddWithValue("@keimeno", keimeno);
command.Parameters.AddWithValue("@title", titlos);
command.ExecuteNonQuery();

Τα keimeno και titlos είναι μεταβλητές που έχουν τις τιμές που θες να γράψεις.

mpempe
Δημοσιεύσεις: 156
Εγγραφή: 23 Ιουν 2003 02:48
Τοποθεσία: peloponisos

INSERT με πολλαπλές γραμμές

Δημοσίευση από mpempe » 26 Φεβ 2016 22:55

Ευχαριστώ για τη βοήθεια
Με παραμέτρους εννοείς κάτι τέτοιο?
command.CommandText="INSERT INTO Phrases ([Key], Value1]) VALUES (@keimeno, @title);
command.Parameters.AddWithValue("@keimeno", keimeno);
command.Parameters.AddWithValue("@title", titlos);
command.ExecuteNonQuery();
command.Parameters.AddWithValue("@keimeno", keimeno1);
command.Parameters.AddWithValue("@title", titlos1);
command.ExecuteNonQuery();
command.Parameters.AddWithValue("@keimeno", keimeno2);
command.Parameters.AddWithValue("@title", titlos2);
command.ExecuteNonQuery();
command.Parameters.AddWithValue("@keimeno", keimeno3);
command.Parameters.AddWithValue("@title", titlos3);
command.ExecuteNonQuery();

Αν το κάνω με παραμέτρους έχει κάποια διαφορά απο τον απλό τρόπο?

ailouros
Δημοσιεύσεις: 212
Εγγραφή: 08 Ιούλ 2015 17:44

INSERT με πολλαπλές γραμμές

Δημοσίευση από ailouros » 27 Φεβ 2016 10:14

Ναι έτσι όπως το γραψες είναι μια χαρά. Σε πρακτικό επίπεδο δεν έχει καμία διαφορά. Απλά είναι καλύτερο από άποψη ασφάλειας (αν φτιάχνεις εφαρμογή για web) και πιο εύκολα αναγνώσιμο. Κατά τα λοιπά κάνεις ό,τι σε βολεύει.

mpempe
Δημοσιεύσεις: 156
Εγγραφή: 23 Ιουν 2003 02:48
Τοποθεσία: peloponisos

INSERT με πολλαπλές γραμμές

Δημοσίευση από mpempe » 27 Φεβ 2016 16:01

Να σαι καλά
ευχαριστω

Απάντηση

Επιστροφή στο “ASP, ASP.NET”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες