Announcement

Collapse
No announcement yet.

Problem mit DataSet und Find()

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Problem mit DataSet und Find()

    Hallo!

    Ich habe folgendes Problem: Ich will eine Suchmaske erstellen, damit diese Maske flexibel ist übergebe ich ihr einen <I>string suchObj</I> der ausgewertet werden soll.
    <BR>
    Die Auswertung soll folgendermaßen aussehen:
    Beim Instanziieren des Objekts wird ein DataSet erstellt in die eine Tabelle geladen wird - in dieser Tabelle stehen die Parameter für die eigentliche Suchabfrage.
    Beim Aufruf der Suchmethode übergebe ich nun meinen <I>string suchObj</I> und die Methode sucht sich die richtigen Parameter für die eigentliche Abfrage.
    <BR>
    Wenn ich mit
    <PRE>myDataSet.Tables[0].Rows.Find(<I>suchObj</I>)</PRE>
    arbeite wird eine Exception geworfen (Message: "Die Tabelle hat keine Primärschlüssel.").<BR><BR>
    Es scheint also so, als würden die Primärschlüssel aus der MSSQL-DB nicht übernommen. Wie kann ich denn in C# die Primärschlüssel setzen?
    Ich habs zwar folgendermaßen probiert <PRE>myDataSet.Tables[0].PrimaryKey = new DataColumn[] {myDataSet.Tables[0].Columns["PKObjekte"]}</PRE>
    , wobei "PKObjekte" mein Primärschlüssel in der DB ist, aber es funktioniert einfach nicht!

    Vielleicht könnt ihr mir ja weiterhelfen!

    Danke, Bav

  • #2
    Hallo,

    &gt;..als würden die Primärschlüssel aus der MSSQL-DB nicht übernommen..

    im Normalfall wäre es sehr ineffektiv, wenn das DataSet automatisch immer die Schema-Daten (Systemtabellen alias Katalog) der Datenbank abfragen würde. Statt dessen sollte der Entwickler einmalig zur Entwicklungszeit diesen Job anstoßen, indem ein typisiertes DataSet erzeugt wird.

    Wenn sich das Ganze immer erst zur Laufzeit abspielen soll, muss man vor dem Aufruf der DataAdapter-Methode <b>Fill</b> zuerst die Methode <b>FillSchema</b> aufrufen, damit die Constraints der Datenbank auch dem DataSet bekannt werden (die DataSet-Eigenschaft SelectCommand legt dabei die zu untersuchende Tabelle fest)

    Comment


    • #3
      Oh, Danke!! Das zweite Problem mit dem zuweisen hat sich auch erledigt - habs nun doch hinbekommen!
      <BR>
      Danke, Ba

      Comment

      Working...
      X