tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
17
ZUGRIFFE
1845
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    krokev krokev ist offline Mitglied
    Registriert seit
    Oct 2011
    Beiträge
    24
    Ich habe eine Gui die mit Textboxen und Radiobutton befüllt ist und muss diese Daten nun beim Klick auf den Button in meine SQL Datenbankspeichern.

    Ich habe kein problem mit meinen insert Befehlen ich stelle mir nur die frage wie ich das am besten/schönsten programmiere und wo ich die insert Befehle schreibe bzw ob ich mit Stored Procedures arbeiten sollt und diese dann beim Klick auf den Button aufrufen sollte?

    LG
     

  2. #2
    Avatar von Nico Graichen
    Nico Graichen Nico Graichen ist offline aka gemballa
    tutorials.de Moderator
    Registriert seit
    Dec 2003
    Ort
    Pulheim (NRW)
    Beiträge
    3.898
    Blog-Einträge
    34
    Die Frage ist, was du zukünftig mit der DB vorhast!

    Schreiben von Daten via Stored Procedure hat nur Sinn, wenn du darin zum einen Logik hast und zum anderen die DB unterschiedlichen Anwendungen zur Verfügung stehen soll, diese aber über den gleichen Weg Daten schreiben (in dem Fall werden dann nämlich die INSERT, UPDATE und DELETE Grants entfernt bzw. nicht vergeben).

    Wenn es eine DB rein für deine Anwendung ist, kann diese auch die DB Commands enthalten. Ob du dies via ADO.NET, OleDB (wohl weniger zu empfehlen) oder z.B. EntityFramework machst, ist dann dir überlassen
     
    Grüße Nico
    ----------------------
    Xing
    ----------------------
    Zitat Zitat von Mark Twain (1835-1910)
    Es gibt drei Dinge, die eine Frau aus dem Nichts hervorzaubern kann: einen Hut, einen Salat und einen Ehekrach.
    Zitat Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
    The Difference Between God and Larry Ellison: God Doesn't Think He's Larry Ellison

  3. #3
    krokev krokev ist offline Mitglied
    Registriert seit
    Oct 2011
    Beiträge
    24
    okay danke für den tipp
    hast du züfälliger weisse ein Codebeispiel zu einem dieser Beispiele(ADO.NET oder EntityFramework)?

    bzw. kannst du mir bei meinem ersten Versuch weiterhelfen?

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    
    public static int ExecuteNonQuery(string sql)
            {
                SqlConnection connection = new SqlConnection(connectionString);
     
                try
                {
                    connection.ConnectionString = connectionString;
                    connection.Open();
                    SqlCommand command = new SqlCommand(sql, connection);
                    return command.ExecuteNonQuery();
                }
                catch (Exception a)
                {
                    if (a.Source != null)
                        Console.WriteLine("IOException source: {0}", a.Source);
                    throw;
                }
            }
     
     
     private void buttonSpeichern_Click(object sender, EventArgs e)
            {
                
            }
     
             public int AddEmployee(char first_name, char last_name)
            {
                using (SqlConnection connection = new SqlConnection(connectionString))
                {
                    connection.Open();
     
                    StringBuilder sb = new StringBuilder();
                    sb.AppendLine("INSERT INTO [visitor_database] ([first_name], [last_name])");
                    sb.AppendLine("OUTPUT INSERTED.ID");
                    sb.AppendLine("VALUES (@first_name, @last_name)");
     
                    using (SqlCommand cmd = new SqlCommand(sb.ToString(), connection))
                    {
                        cmd.Parameters.AddWithValue("first_name", first_name);
                        cmd.Parameters.AddWithValue("last_name", last_name); 
     
                        return cmd.ExecuteNonQuery();
                    }
                }
            }

    Bitte um Hilfe
    DANKE
    Geändert von krokev (23.11.11 um 10:27 Uhr)
     

  4. #4
    Avatar von Nico Graichen
    Nico Graichen Nico Graichen ist offline aka gemballa
    tutorials.de Moderator
    Registriert seit
    Dec 2003
    Ort
    Pulheim (NRW)
    Beiträge
    3.898
    Blog-Einträge
    34
    Zitat Zitat von krokev Beitrag anzeigen
    okay danke für den tipp
    hast du züfälliger weisse ein Codebeispiel zu einem dieser Beispiele(ADO.NET oder EntityFramework)?
    Also dazu findet man in der MSDN und auf anderen Seite im Netz nun mehr als genug! Google oder Bing helfen da beim Finden gern weiter.
    Zitat Zitat von krokev Beitrag anzeigen
    bzw. kannst du mir bei meinem ersten Versuch weiterhelfen?
    Vielleicht! Wenn du verrätst, was das Problem ist!
     
    Grüße Nico
    ----------------------
    Xing
    ----------------------
    Zitat Zitat von Mark Twain (1835-1910)
    Es gibt drei Dinge, die eine Frau aus dem Nichts hervorzaubern kann: einen Hut, einen Salat und einen Ehekrach.
    Zitat Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
    The Difference Between God and Larry Ellison: God Doesn't Think He's Larry Ellison

  5. #5
    krokev krokev ist offline Mitglied
    Registriert seit
    Oct 2011
    Beiträge
    24
    Ich suche einfach die einfachste variante um

    Code :
    1
    2
    3
    4
    5
    6
    
    //auslesen der Eingabe
                string Vorname = textBoxVorname.Text;
                string Nachname = textBoxNachname.Text;
                string Ankunft = Convert.ToString(dateTimePickerAnkunft);
                string Grund = comboBoxGrund.Text;
                string Kommentar = textBoxkommentar.Text;

    in die SQL Datenbank eizulesen
    ein Codeansatz wäre sehr hilfreich

    Danke im Vorraus
     

  6. #6
    Avatar von Nico Graichen
    Nico Graichen Nico Graichen ist offline aka gemballa
    tutorials.de Moderator
    Registriert seit
    Dec 2003
    Ort
    Pulheim (NRW)
    Beiträge
    3.898
    Blog-Einträge
    34
    Hi

    Einen Codeansatz hast du! Was genau bzw. wo genau ist denn dein Problem? Das hast du immer noch nicht beschrieben!
     
    Grüße Nico
    ----------------------
    Xing
    ----------------------
    Zitat Zitat von Mark Twain (1835-1910)
    Es gibt drei Dinge, die eine Frau aus dem Nichts hervorzaubern kann: einen Hut, einen Salat und einen Ehekrach.
    Zitat Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
    The Difference Between God and Larry Ellison: God Doesn't Think He's Larry Ellison

  7. #7
    krokev krokev ist offline Mitglied
    Registriert seit
    Oct 2011
    Beiträge
    24
    Mein Problem liegt darin die ausgelesen Daten in die Datenbank mittels insert befehlen zu speichern.
    der inster befehl ist nicht das problem ich weiss nur nicht wie ich diesen in den code einbaun kann bzw wie ich in ausführen kann oder dergleichen
    wie gesagt ich bin Programmieranfänger und kenne mich noch nit wirklich gut aus mit dieser materie
     

  8. #8
    Avatar von Nico Graichen
    Nico Graichen Nico Graichen ist offline aka gemballa
    tutorials.de Moderator
    Registriert seit
    Dec 2003
    Ort
    Pulheim (NRW)
    Beiträge
    3.898
    Blog-Einträge
    34
    Du hast jetzt 3 Mal das gleich erzählt, aber immer noch nicht gesagt, wo der Fehler (Fehlermeldungen, ...) in deinem Code ist.

    Das du Programmier-Anfänger bist ist ok. Jeder hat mal angefangen. Aber wenn man Hilfe braucht, sollte man sein Problem schildern können. Wie oben bereits geschrieben, wirst du von mir nicht den kompletten Code bekommen (willst du ja auch nicht ). Du solltest aber Lernen, dein Problem zu beschreiben. Lies dein Frage vor dem Senden einfach nochmal in Ruhe durch, versetze dich in die Lage des Gegenüber und stell dir die Frage "Kann ich mit dem, was da steht etwas anfangen und verstehe, was der Autor mir sagen will?"

    Back to Topic
    In der MSDN gibts ein Beispiel, was du dir wahrscheinlich schon angeschaut hast. Geh anhand diese Beispiels vor und mach nach und nach die Anpassungen für dein Szenario.
    http://msdn.microsoft.com/de-de/libr...rtcommand.aspx
     
    Grüße Nico
    ----------------------
    Xing
    ----------------------
    Zitat Zitat von Mark Twain (1835-1910)
    Es gibt drei Dinge, die eine Frau aus dem Nichts hervorzaubern kann: einen Hut, einen Salat und einen Ehekrach.
    Zitat Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
    The Difference Between God and Larry Ellison: God Doesn't Think He's Larry Ellison

  9. #9
    krokev krokev ist offline Mitglied
    Registriert seit
    Oct 2011
    Beiträge
    24
    Mei problem ist das ich keine fehlermeldung bekomme :/
    allerdings muss trotzdem irgendwo in meinem cod ein fehler oder dergleichen sein so das es nicht funktioniert

    Die einzige fehlermeldung die ich bekomme ist das er connection nicht kennt
    Code :
    1
    
     SqlCommand command = new SqlCommand("INSERT INTO visitor_database (first_name, last_name, fkcategory) " + "VALUES (@first_name, @last_name, @fkcategory)", connection);

    Fehlermeldung: connection ist im aktuellen kontext nicht verfügbar allerdings habe ich dies schon festgelegt habe

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    public void Form1_Load_1(object sender, EventArgs e)
           {
               try
               {
                   string connectionString = "SERVER=DAUTSQL01.fremont.lamrc.net; Database=Visitors; User ID=VisitorDB; Password=9AbU5ApHa;";
                   SqlConnection connection = new SqlConnection(connectionString);
                   connection.Open();
               }
               catch
               {
                   MessageBox.Show("Es besteht keine Verbindung zur Datenbank");
               }   
           }


    Hier mei code Ich bekomme die catch-Meldung nicht und es wird auch nichts in die Datenbank gespeichert


    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    
    public void buttonSpeichern_Click(object sender, EventArgs e)
            {
                //auslesen der Eingabe#
               
                string Vorname = textBoxVorname.Text;
                string Nachname = textBoxNachname.Text;
                string Ankunft = Convert.ToString(dateTimePickerAnkunft);
                string Grund = comboBoxGrund.Text;
                string Kommentar = textBoxkommentar.Text;
     
     
                try
                {
                    // Create the InsertCommand.
                    SqlCommand command = new SqlCommand("INSERT INTO visitor_database (first_name, last_name, fkcategory) " + "VALUES (@first_name, @last_name, @fkcategory)");
     
                    // Add the parameters for the InsertCommand.
                    command.Parameters.Add("@first_name", SqlDbType.VarChar, 75, Vorname);
                    command.Parameters.Add("@last_name", SqlDbType.VarChar, 75, Nachname);
                    command.Parameters.Add("@fkcategory", SqlDbType.Int, 4, "1");
                }
                catch
                {
                    MessageBox.Show("sfda");
                }
     

  10. #10
    Avatar von Nico Graichen
    Nico Graichen Nico Graichen ist offline aka gemballa
    tutorials.de Moderator
    Registriert seit
    Dec 2003
    Ort
    Pulheim (NRW)
    Beiträge
    3.898
    Blog-Einträge
    34
    Hi

    Wo ist denn das ExecuteNonQuery jetzt hin?
     
    Grüße Nico
    ----------------------
    Xing
    ----------------------
    Zitat Zitat von Mark Twain (1835-1910)
    Es gibt drei Dinge, die eine Frau aus dem Nichts hervorzaubern kann: einen Hut, einen Salat und einen Ehekrach.
    Zitat Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
    The Difference Between God and Larry Ellison: God Doesn't Think He's Larry Ellison

  11. #11
    krokev krokev ist offline Mitglied
    Registriert seit
    Oct 2011
    Beiträge
    24
    Das ist in einer anderen Klasse
    Muss das auch hier beim aufruf des inserts sein****
    Ist der rest in ordnung? bzw sind noch andere Fehler in meinem Code?
     

  12. #12
    Avatar von Nico Graichen
    Nico Graichen Nico Graichen ist offline aka gemballa
    tutorials.de Moderator
    Registriert seit
    Dec 2003
    Ort
    Pulheim (NRW)
    Beiträge
    3.898
    Blog-Einträge
    34
    Du legst hier das Command-Objekt an. Führst den Command aber nicht aus. Wenn du an anderer Stelle das Execute des Command aufrufst, wird dies auch ein anderer Command sein!

    Hast du dir das Beispiel in der MSDN angeschaut und es auf deine Umgebung adaptiert?
    krokev bedankt sich. 
    Grüße Nico
    ----------------------
    Xing
    ----------------------
    Zitat Zitat von Mark Twain (1835-1910)
    Es gibt drei Dinge, die eine Frau aus dem Nichts hervorzaubern kann: einen Hut, einen Salat und einen Ehekrach.
    Zitat Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
    The Difference Between God and Larry Ellison: God Doesn't Think He's Larry Ellison

  13. #13
    krokev krokev ist offline Mitglied
    Registriert seit
    Oct 2011
    Beiträge
    24
    hab das nun so probiert:
    wie geht der aufruf?
    ist das richtig****

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    
     public static int ExecuteNonQuery(string sql)
            {
                string connectionString = "SERVER=DAUTSQL01.fremont.lamrc.net; Database=Visitors; User ID=VisitorDB; Password=9AbU5ApHa;";
                SqlConnection connection = new SqlConnection(connectionString);
     
                try
                {
                    connection.ConnectionString = connectionString;
                    connection.Open();
                    SqlCommand command = new SqlCommand(sql, connection);
                    return command.ExecuteNonQuery();
                }
                catch (Exception a)
                {
                    if (a.Source != null)
                        Console.WriteLine("IOException source: {0}", a.Source);
                    throw;
                }
                finally
                {
                    connection.Close(); 
                }
            }
     
            public void buttonSpeichern_Click(object sender, EventArgs e)
            {
                string connectionString = "SERVER=DAUTSQL01.fremont.lamrc.net; Database=Visitors; User ID=VisitorDB; Password=9AbU5ApHa;";
                SqlConnection connection = new SqlConnection(connectionString);
     
                InsertBesucher(connection); 
     
     
            }
     
            public static SqlDataAdapter InsertBesucher(SqlConnection connection)
            {
                SqlDataAdapter adapter = new SqlDataAdapter();
     
                SqlCommand command = new SqlCommand("INSERT INTO visitor_database (first_name, last_name, screening_result, license_plate, personal_document, fknation, fkcompany, fkcategory) " + "VALUES (@first_name, @last_name, @screening_result, @license_plate, @personal_document, @fknation, @fkcompany, @fkcategory)", connection);
     
                
                command.Parameters.Add("@first_name", SqlDbType.VarChar, 75, "Vorname"); 
                command.Parameters.Add("@last_name", SqlDbType.VarChar, 75, "Nachname");
                command.Parameters.Add("@screening_result", SqlDbType.Bit, 1);
                command.Parameters.Add("@license_plate", SqlDbType.VarChar, 50, "Kennzeichen");
                //command.Parameters.Add("@personal_document", SqlDbType.VarBinary, max);
                command.Parameters.Add("@fknation", SqlDbType.Int, 2); 
                command.Parameters.Add("@fkcompany", SqlDbType.Int, 2); 
                command.Parameters.Add("@fkcategory", SqlDbType.Int, 2); 
     
                return adapter; 
     
            }
     

  14. #14
    Avatar von Nico Graichen
    Nico Graichen Nico Graichen ist offline aka gemballa
    tutorials.de Moderator
    Registriert seit
    Dec 2003
    Ort
    Pulheim (NRW)
    Beiträge
    3.898
    Blog-Einträge
    34
    Hi

    Nochmal: Du erzeugst einen weiteren SqlCommand, der andere Informationen enthält, als der in "InsertBesucher"! Ruf da ExecuteNonQuery auf!

    Und ich geb dir nochmal den Hinweis mit dem Beispiel in der MSDN! Mach dir eine kleine Konsolenanwendung, die diese Beispiel enthält und pack es dann in deine WinForms Anwendung!
    krokev bedankt sich. 
    Grüße Nico
    ----------------------
    Xing
    ----------------------
    Zitat Zitat von Mark Twain (1835-1910)
    Es gibt drei Dinge, die eine Frau aus dem Nichts hervorzaubern kann: einen Hut, einen Salat und einen Ehekrach.
    Zitat Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
    The Difference Between God and Larry Ellison: God Doesn't Think He's Larry Ellison

  15. #15
    krokev krokev ist offline Mitglied
    Registriert seit
    Oct 2011
    Beiträge
    24
    Ich habe das schon drei mal probiert und keine ahnung wo ich einen weiteren SQLCommand erzeuge**** bzw was ich verändern muss?
     

Ähnliche Themen

  1. Antworten: 23
    Letzter Beitrag: 25.10.11, 18:14
  2. Umgang der Daten aus einer Derby Datenbank in einer Visual Web JSF Application
    Von melly_ im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 0
    Letzter Beitrag: 04.03.09, 14:23
  3. Antworten: 2
    Letzter Beitrag: 31.07.07, 14:13
  4. Antworten: 3
    Letzter Beitrag: 28.06.05, 15:03
  5. Antworten: 4
    Letzter Beitrag: 23.06.05, 08:35

Stichworte