Laden...

INNER JOIN Abfrage über DataTable an GridView binden?

Erstellt von Iceskaarj vor 16 Jahren Letzter Beitrag vor 16 Jahren 998 Views
I
Iceskaarj Themenstarter:in
85 Beiträge seit 2007
vor 16 Jahren
INNER JOIN Abfrage über DataTable an GridView binden?

verwendetes Datenbanksystem: MS SQL

ich möchte eine DataGridView mit einer Inner Join Tabellenabfrage füllen:


string Benutzername = "test";
string Anzeigename = "Test";
string Kostenstelle = "T001";

DBConnect Connect = new DBConnect();

//GridView füllen
GridViewList.DataSource = Connect.DBReadAFG(Kostenstelle, Benutzername, Anzeigename);   

//DataSource an GridView binden
GridViewList.DataBind();  


public DataTable DBReadAFG(string Kostenstelle, string Benutzername, string Anzeigename) 
    {
        string strSQL = "SELECT Auftrag.Auftragsdatum, Auftrag.Wunschtermin, Auftrag.Titel," +
                        "Auftrag.Beschreibung, Auftrag.erledigt_Datum," +
                        "Kostenstelle.Kostenstelle, Kostenstelle.KSTLeiter_Kennung " +
                        "FROM Auftrag" +
                        "INNER JOIN Auftraggeber" +
                        "ON Auftrag.Auftraggeber_ID = Auftraggeber.Auftraggeber_ID" +
                        "INNER JOIN Kostenstelle" +
                        "ON Auftrag.Kostenstelle_ID = Kostenstelle.Kostenstelle_ID" +
                        "WHERE Auftraggeber.Benutzername = " + Benutzername +
                        "OR Auftraggeber.Kostenstellenleiter = " + Anzeigename +
                        "OR Auftraggeber.Projektleiter = " + Anzeigename +
                        "AND Auftraggeber.Kostenstelle = " + Kostenstelle;

        SqlCommand cmd = new SqlCommand(strSQL, con);
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        da.Fill(dt);
        return dt;      
    }

wenn ich die Seite aufrufe, kommt aber einne Fehlermeldung (siehe Anhang)

Anscheinend liegt das am INNER JOIN, denn Abfragen ohne INNER JOIN funktionieren im ASP.NET.
Der oben genannte SQL-Befehl funktioniert aber im eigenen Abfragefenster im SQL Server Management Studio auch ohne Probleme.

139 Beiträge seit 2006
vor 16 Jahren

Ein kleiner tip, vielleicht hilft es ja:

Ich finde die Fehlermeldungen was SQL Querys angeht auch immer recht bescheiden. Deswegen teste ich die Querys erst immer mit nem DB Tool, das mir genau die fehlermeldung ausgibt. Da kann ich dann so lnage rum fummeln, bis es passt.

Ich benutze dafür MSDE Queyr Tool. Ist kostenlos und hier runter zu laden.

Gruss Ari
Wer lesen kann ist klar im vorteil!
MSDN
Dein Feund in allen fragen

A
83 Beiträge seit 2007
vor 16 Jahren

Hallo Iceskaarj,

2 Sachen stimmen hier nicht:

  1. hier und an anderen Stellen fehlen Leerzeichen,

 "FROM Auftrag" +
 "INNER JOIN Auftraggeber" + 

du erhältst ... AuftragINNER JOIN

sinnvoll wäre auch, dir den commandtext fertig anzuschauen.

  1. Die string-Variablen müssen wahrscheinlich* in Hochkommata oder eckige Klammern gesetzt werden. Statt:

"AND Auftraggeber.Kostenstelle = " + Kostenstelle;

"AND Auftraggeber.Kostenstelle = '" + Kostenstelle + "'";

*) ich benutze bisher nur die SQL-Server Compact Edition, da ist es so; dürfte unter SQL-Server auch nicht anders sein.

hth, ara