[SQL] Einträge ordnen

Squizzer

Grünschnabel
Hey

ich arbeite zur Zeit an einem C#-Programm, dass SQL Abfragen ausführt. Nun möchte ich die Daten nach einer Spalte ordnen oder einen neuen Eintrag an der richtigen Position(alphabetische Reihenfolge der Spalte) einfügen.

Wie schaffe ich das?
 
Einfügen mit INSERT INTO
Sortieren mit ORDER BY

Sorry, aber ich befürchte, ich versteh deine Frage nicht. In SQL fügt man keine Daten an bestimmten Positionen ein. Man bestimmt die Reihenfolge bei der Auswahl (SELECT)
 
Ja schon klar, nur mit dem Befehl werden Daten aus Excel verarbeitet (OleDb) und da ist die Reihenfolge wichtig.
 
Willst du jetzt mit Excel oder mit SQL arbeiten?

Ich denke dein Problem ist eher auf C#- oder auf Excel-Seite als in SQL - oder habe ich als alter SQL-Liebhaber da was verpasst?

PS: Ausführliche Erklärungen und ein wenig Code helfen deinen Helfer dir zu helfen
 
Also ich bearbeite in C# eine Excel-Datei mittels ADO.NET. Dabei wird ein Befehl ausgeführt, der in SQL ist.
Hier mal ein Beispielcode:
Code:
string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Book1.xls;ExtendedProperties=""Excel 8.0;HDR=YES;""";

DbProviderFactory factory =
   DbProviderFactories.GetFactory("System.Data.OleDb");

using (DbConnection connection = factory.CreateConnection())
{
    connection.ConnectionString = connectionString;

    using (DbCommand command = connection.CreateCommand())
    {
        command.CommandText = "INSERT INTO [Liste$]
         (Kuerzel, Name, Vorname) VALUES(\"MM\",\"Mustermann\",\"Max\")";

        connection.Open();

        command.ExecuteNonQuery();
    }
}

Dabei wird der Eintrag unten an die Excel Tabelle angefügt, aber ich möchte es entsprechend dem Kürzel(alphabetisch) an der richtigen Position einfügen.
 
Afaik geht das nicht so ohne weiteres, da Du über JET eine OleDb Verbindung zu einem Excelsheet aufbaust.

Genausowenig, wie Du Garantien für die Position eines Datensatzes in der DB bekommst, bekommst Du hier auch keine Möglichkeit.

Was Du möchstest, erfordert afaik die Verwendung eines Excel-Objektes in .Net, was Dich aber wieder auf eine Excelversion festnagelt. Das Excel Object ist aber eben nicht eine abstrakte DB-Api, sondern kennt die Spezifika von Excel & Co und erlaubt das direkte Eingreifen in das Worksheet.

Es würde mich zumindestens stark wundern, wenn OleDb eine derartige Funktion hergibt.

Gegenfrage: Wenn Du OleDB und JET machst, warum nimmst Du dann nich einfach eine MDB?

Grüße,
gore
 

Neue Beiträge

Zurück