none
Über SQL Abfrage GriedView Tabelle erstellen

    Allgemeine Diskussion

  • Hallo an Alle...

    ich arbeite an einer Studienarbeit...im Rahmen dieser Arbeit sollen alle (also vergangene und gegenwärtige) Bestellungen den Kunden geordnet werden können....Dafür habe ich jetzt eine DropDownListe mit allen Kundennamen und darunter eine ObjectDataSource mit allen Bestellungen (also Bestellungen von Allen Kunden)...Nun möchte ich das mein Programm nur die Ergebnisse der Kunden zurückgibt die in der DropDownListe ausgewählt wurde.

    Dafür habe ich mir eine SQL Abfrage ausgedacht, jedoch weis ich nicht wie ich das in Visual C# anweden kann.

    Zusätzl. Informationen:

    Website über Visual Basic .aspx

    Datebank in Access .mdb

    (Abfrage Select * From Bestellungen Where DropDownListe.ID = Bestellungen.ID)

    Gerne sind auch andere Vorschläge willkommen...Hauptsache es funktionert :-)

    Vielen Dank :-)

    Freitag, 3. Januar 2014 11:02

Alle Antworten

  • Hi,

    hier gibt's verschiedene Herangehensweisen.

    1. direkten SQL-Connector

    2. OR-Mapper

    3. Webservice

    Für simple und schnelle Dinge würde ich 1.) sagen: Hierfür kann dir eventuell der Artikel helfen.

    Ansonsten wäre gut zu wissen was du bereits versucht hast. :)

    Grüße, Tobi


    Best Regards. When you see answers and helpful posts, please click Vote As Helpful, Propose As Answer, and/or Mark As Answer. This helps us build a healthy and positive community.

    Dienstag, 7. Januar 2014 11:34
  • Hi Tobi....vielen Dank für den Rat...laut Aufgabenstellung dürfen wir nur Object verwenden und kein sqldataconnectionstring...im moment wird auf die datenbank so zugegriffen:

            public List<clsOrder> getAllOrders()
            {
    
    
                DAL.DALObjects.dDataProvider _myProvider = DAL.DataFactory.GetAccessDBProvider(_databaseFile);
    
    
                DataSet _myDataSet = _myProvider.GetStoredProcedureDSResult("QOGetAllOrders");
    
    
                DataTable _myDataTable = _myDataSet.Tables[0];
    
    
                List<clsOrder> _myOrderList = new List<clsOrder>();
    
                //Lesen wir jetzt Zeile (DataRow) für Zeile
                foreach (DataRow _dr in _myDataTable.Rows)
                {
    
                    _myOrderList.Add(DatarowToclsOrder(_dr));
                }
                return _myOrderList;
            }

    Das Problem hier ist, dass ich alle Bestellungen vorgezeigt bekommen...ich möchte jedoch das nur die Kunden angezeigt werden die auch gewählt/ bzw. eingegeben werden. Dafür müsste ich eventuell eine SQL Abfrage starten in From von

    Select *

    From Order

    Where (Benutzername in der Datenbank = ddlBenutzername.SelectedValue);//ddl = dropdownlist

    Jetzt weiß ich überhaupt nicht ob so etwas in C# möglich ist. :S


    • Bearbeitet Momo6693 Dienstag, 7. Januar 2014 13:31
    Dienstag, 7. Januar 2014 13:30
  • Hi,

    mit deinen table.Rows hast ja eine dedizierte Menge. Auf diese kannst du LINQ-Abfragen stellen. MSDN Artikel: http://msdn.microsoft.com/de-de/library/bb397933.aspx

    Leider kenn ich das Result vn deiner table.Rows nicht (etwaig kannst du das hier posten). Aber es könnte wie folgt gehen:

    var filteredList = table.Rows.Where(item => item.CustomerId = ddlBenutzername.SelectedValue);

    Gruesse, Tobi


    Best Regards. When you see answers and helpful posts, please click Vote As Helpful, Propose As Answer, and/or Mark As Answer. This helps us build a healthy and positive community.

    Dienstag, 7. Januar 2014 18:30
  • so eine kleine veränderung hehe :)

    Ich habe jetzt eine neue Abfrage in der Datenbank erstellt die auch gut funktionert...wenn ich die Abfrage in der Datenbank ausführe erhalte ich die richtigen Daten...ich muss das ganze nur noch auf derBenutzeroberfläche sichtbar und funktionsfähig machen...

    Die Abfrage lautet

    SELECT TOrder.*, TUser.UName, TProduct.PName
    FROM TProduct INNER JOIN (TUser INNER JOIN TOrder ON TUser.UID = TOrder.OFKUserId) ON TProduct.PID = TOrder.OFKProduktId
    WHERE (((TUser.UID)=[@ID]));



    Zugriffscode auf die Datenbank in der bll

     public clsOrder GetOrderUserbyId(int _id)
            {
    
               
                DAL.DALObjects.dDataProvider _myProvider = DAL.DataFactory.GetAccessDBProvider(_databaseFile);
    
               
                _myProvider.AddParam("ID", _id, DAL.DataDefinition.enumerators.SQLDataType.INT);
    
                
                DataSet _myDataSet = _myProvider.GetStoredProcedureDSResult("QUTOrderExtendsUser");
    
              
                DataRow _dr = _myDataSet.Tables[0].Rows[0];
    
                
    
                return DatarowToclsOrder(_dr);
            }

    Und die momentane implementierung zur ausführung sieht so aus:

     protected void Button1_Click(object sender, EventArgs e)
            {
                bll.clsOrderCollection myOrderCol = new bll.clsOrderCollection();
    
                int UserId = Convert.ToInt32(DropDownList1.SelectedValue);
    
                bll.clsOrder currentUser = myOrderCol.GetOrderUserbyId(UserId);
    
                
    
    
                
    
            }

    Und als Ergebnis erhalte ich weder eine Fehlermeldung noch was anderes also keine Reaktion :)

    Danke :-)


    • Bearbeitet Momo6693 Mittwoch, 8. Januar 2014 17:46
    Mittwoch, 8. Januar 2014 17:45
  • *****************************************************************************************************

    Dieser Thread wurde mangels weiterer Beteiligung des Fragestellenden ohne bestätigte Lösung abgeschlossen.

    Neue Rückfragen oder Ergänzungen zu diesem Thread bleiben weiterhin möglich.

    *****************************************************************************************************

    Ciprian Bogdan, MICROSOFT   Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-PrinzipEntwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.





    Dienstag, 11. März 2014 20:21
    Besitzer