Variable nicht deklariert?



  • Hallo zusammen,

    ich habe da ein Problem mit der Übergabe einer Variable über die URL.

    Bei folgendem Quelltext

    <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="Provider=SQLOLEDB;Data Source=SERVER-SQL;Persist Security Info=True;Password=;User ID=;Initial Catalog=p2plustest"
    SelectCommand="SELECT DISTINCT AUFTRAG.AUFTRAG, AUFTRAG.ADRESSE, ADRESSE.FIRMA, ADRESSE.FIRMA1, ADRESSE.STRASSE, ADRESSE.LAND, ... FROM ADRESSE INNER JOIN AUFTRAG ON ADRESSE.ADRESSE = AUFTRAG.ADRESSE ... WHERE (AUFTRAG.AUFTRAG = @auftrag) AND (AUFTRAGPOS.STATUS < 7)" ProviderName="System.Data.OleDb">
    <SelectParameters>
    <asp:QueryStringParameter Name="auftrag" QueryStringField="auftrag" Type="String" />
    </SelectParameters>
    </asp:SqlDataSource>

    bekomme ich folgende Fehlermeldung:

    System.Data.OleDb.OleDbException: Die Variable '@auftrag' muss deklariert werden.

    Der Wert wird allerdings in der URL übergeben. Der Seitenaufruf sieht so aus:

    http://dat1002/p2plus-f20/neue_seiten/dispo-packschein.aspx?auftrag=02022092

    Hat jemand eine Ahnung, woran das liegen könnte?
    Ich wäre sehr dankbar, wenn ihr mir schnell helfen könntet, da das Projekt mitlerweile überfällig ist.

    Danke im Vorraus
    Olli



  • Hallo zusammen,

    ich hab' das Problem nun gelöst.

    Man muß in OLE-DB Verbindungen die Variablen im SELECT mit ? angeben, habe deshalb auf den nativen SQL-Treiber umgestellt.

    Für alle, die es interessiert, hier der Code:

    <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="Data Source=SERVER-SQL;Initial Catalog=p2plustest;Persist Security Info=True;User ID=******;Password=******"
    SelectCommand="SELECT DISTINCT AUFTRAG.AUFTRAG, AUFTRAG.ADRESSE, ADRESSE.FIRMA, ADRESSE.FIRMA1, ADRESSE.STRASSE, ADRESSE.LAND, ADRESSE.PLZ, ADRESSE.ORT, AUFTRAGPOS.TERMIN, AUFTRAGPOS.ARTIKEL, ARTIKEL.NAME, AUFTRAGPOS.MENGE, ... FROM ADRESSE INNER JOIN AUFTRAG ON ADRESSE.ADRESSE = AUFTRAG.ADRESSE INNER JOIN AUFTRAGPOS ON AUFTRAG.AUFTRAG = AUFTRAGPOS.AUFTRAG ... WHERE (AUFTRAG.AUFTRAG = @auftrag) AND (AUFTRAGPOS.STATUS < 7)" ProviderName="System.Data.SqlClient">
    <SelectParameters>
    <asp:QueryStringParameter Name="auftrag" QueryStringField="auftrag" Type="String" />
    </SelectParameters>
    </asp:SqlDataSource>

    Gruß
    Olli


Anmelden zum Antworten