1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Deutsch
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

1.Dynamische Buttons erzeugen 2. Stored Procedure aufrufen

  • toni_
  • 22. Oktober 2004 um 16:16
  • Unerledigt
  • toni_
    2
    toni_
    Mitglied
    Punkte
    15
    Beiträge
    2
    • 22. Oktober 2004 um 16:16
    • #1

    Hi. Ich weiss nicht ob dieser der richtige forum ist um meine probleme zu posten, aber ich habe in verschiedene andere forums versucht aber keiner konnte mir helfen. also wenn es überflüssig ist, dann verzeiht ihr bitte. ich wäre sehr dankbar auf eure hilfe. die problemstellung ist ein bissi lang :grinning_squinting_face: und deswegen bitte ich nochmal um verzeihung.
    ich habe 2 Problemme und ich kann nicht weiter machen.

    ich werde versuchen mich klar auszudrücken.
    ich danke euch für eure Zeit!!!
    Das Code ist in C# und die Datenbank ist Oracle

    1-ste Problem
    Ich will Steuerelemente zur Laufzeit erstellen. Ich rufe die DynamicLinks() methode,die folgendes macht: erstellt LinkButtons(sie bleiben immer gleich in Panel3) die ihre Namen von der Datenbank kriegen. Die OnClick Methode von den Linkbuttons ruff ein Artikel von der Datenbank und sollte andere linkbuttons (Panel1) erstellen. Sie erstellen doch die Linkbuttons doch dann wenn ich ein zweites mal auf die Button geclickt habe. Dasselbe Problem kommt bei den erstelle Linkbuttons (sie machen das selbe wie die im panel3) im panel1. Ich muss 2 mal clicken um das erwünschte Effekt zu kriegen.

    Da ist die Tabelle in oracle

    Code
    create table field (
    name varchar2(20),
    upperfield varchar2(20),
    primary key (name),
    foreign key (upperfield) references field(name),
    unique(name,upperfield));



    Da ist C# Code (ich habe im code vieles verkürtzt um den code übersichtlicher zu machen)

    Code
    private void Page_Load(object sender, System.EventArgs e)
    {
    if (!Page.IsPostBack)
    {
    Connection();
    DynamicLinks();
    DynamicLinks(Label6.Text);
    }
    else
    {
    DynamicLinks(); 
    DynamicLinks(Label6.Text);
    connection.Close();
    }
    }
    private void DynamicLinks(string field)
    {
    prm1 = cmd.Parameters.Add("pField",OracleDbType.Varchar2);
    prm1.Value = field;
    OracleDataReader reader;
    cmd.CommandText = "SELECT count(*) as Anzahl FROM field WHERE upperfield = :pField";
    Anzahl = Convert.ToInt32(reader['Anzahl']);
     
    cmd.CommandText = "SELECT name FROM field WHERE upperfield = :pField";
     
    LinkButtons1 = new LinkButton[Anzahl];
    string [] fields = new string[Anzahl];
    while(reader.Read())
    {
    fields[i] = reader['name'].ToString();
    i++;
    }
     
     
    for (i = 0; i< Anzahl; i++)
    {
    LinkButtons1[i] = new LinkButton();
    LinkButtons1[i].Text = fields[i];
    LinkButtons1[i].Click += new EventHandler(this.LinkButtons1_Click);
    Panel1.Controls.Add(LinkButtons1[i]);
    Panel1.Controls.Add(new LiteralControl("<br>"));
    }
     
    }
     
    private void DynamicLinks()
    {
    cmd.CommandText = "SELECT count(*) as Anzahl FROM field WHERE upperfield IS NULL";
    Anzahl = Convert.ToInt32(reader['Anzahl']);
     
    cmd.CommandText = "SELECT name FROM field WHERE upperfield IS NULL";
     
    LinkButtons = new LinkButton[Anzahl];
    string [] fields = new string[Anzahl];
     
    while(reader.Read())
    {
    fields[i] = reader['name'].ToString();
    i++;
    }
     
    for (int j = 0; j< Anzahl; j++)
    {
    LinkButtons[j] = new LinkButton();
    LinkButtons[j].Text = fields[j];
    LinkButtons[j].Click += new EventHandler(this.LinkButtons_Click);
    Panel3.Controls.Add(LinkButtons[j]);
    Panel3.Controls.Add(new LiteralControl("<br>"));
    }
     
    }
    private void LinkButtons_Click(object sender, System.EventArgs e)
    {
    for (int i = 0; i<LinkButtons.Length;i++)
    {
    if (sender.GetHashCode() == LinkButtons[i].GetHashCode())
    {
    Connection();
    Label1.Text = GetArtikel(LinkButtons[i].Text);
    Label2.Text = LinkButtons[i].Text;
    Label6.Text = LinkButtons[i].Text;
    }
    }
    DynamicLinks();
     
    }
     
    private void LinkButtons1_Click(object sender, System.EventArgs e)
    {
    for (int i = 0; i<LinkButtons1.Length;i++)
    {
    if (sender.GetHashCode() == LinkButtons1[i].GetHashCode())
    {
    Connection();
    Label1.Text = GetArtikel(LinkButtons1[i].Text);
    Label2.Text = LinkButtons1[i].Text;
    Label6.Text = LinkButtons1[i].Text;
    }
    }
    DynamicLinks(Label6.Text);
     
    }
    Alles anzeigen


    2-te Problem
    Ich will eine oracle Stored Procedure aufrufen, aber ich weiss nicht wie.
    Ich ruf sie so, aber es geht einfach nicht. ich Kriege irgendwelche DB-exceptions.

    Code
    OracleCommand cmd1 = new OracleCommand("PATH",connection);
    cmd1.CommandType = CommandType.StoredProcedure;
    OracleParameter p1 = cmd1.Parameters.Add("field",OracleDbType.Varchar2);
    p1.Direction = ParameterDirection.Input;
    cmd1.Parameters['field'].Value = "example";
    cmd1.ExecuteNonQuery();
     
    OracleDataReader reader1 = (OracleDataReader) p1.Value;


    die signatur von der Stored Procedure ist so:
    CREATE FUNCTION Path(field IN VARCHAR2) RETURN VARCHAR2
    VIELEN DANK IM VORAUS!!!

  • Ringding
    11
    Ringding
    Mitglied
    Reaktionen
    12
    Punkte
    1.237
    Beiträge
    244
    • 24. Oktober 2004 um 09:50
    • #2
    Zitat von toni_

    ich Kriege irgendwelche DB-exceptions.

    Das ist keine sehr nützliche Angabe, wenn dir wer helfen will.

  • toni_
    2
    toni_
    Mitglied
    Punkte
    15
    Beiträge
    2
    • 24. Oktober 2004 um 11:06
    • #3
    Zitat von Ringding

    Das ist keine sehr nützliche Angabe, wenn dir wer helfen will.


    Sorry habe ich vergessen.

    Code
    [i]ORA-06550: Zeile 1, Spalte 7: PLS-00221: 'PATH' ist keine Prozedur oder ist nicht definiert ORA-06550: Zeile 1, Spalte 7: PL/SQL: Statement ignored[/i]



    Hat wer eine Ahnung vom ersten Probelm???:confused:

    lg, toni

  • Maximilian Rupp 27. Dezember 2024 um 12:06

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Benutzer online in diesem Thema

  • 1 Besucher

Rechtliches

Impressum

Datenschutzerklärung

  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  • Deutsch
  • English
Zitat speichern