Eingaben in Textboxen in einer Datenbank speichern

  • C#
  • .NET 5–6

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Kathiii.

    Eingaben in Textboxen in einer Datenbank speichern

    Hallo,
    ich möchte gerne eingaben in mehreren Textboxen mit einem Speicherbutton in einer Datenbank speichern und diese in einem DataGrid ausgeben. Ich kann die Daten in einem Datagrid ausgeben, allerdings fällt mir das speichern schwer. Meine Datenbank heißt Kathi_TEST und die Tabelle in der ich es speichern möchte heißt MitgliedmitInfos. Mit einer Textbox die ihre Daten in einer Datenbank mit einer Spalte speichert bekomme ich es hin.

    Mein Code für das Ausgeben der Daten:

    C#-Quellcode

    1. private void FillDataGrid()
    2. {
    3. string ConString = ConfigurationManager.ConnectionStrings["ConString"].ConnectionString;
    4. string CmdString = string.Empty;
    5. using (SqlConnection con = new SqlConnection(ConString))
    6. //ConString ist in der App.config deklariert
    7. {
    8. CmdString = "SELECT * FROM MitgliedmitInfos";
    9. SqlCommand cmd = new SqlCommand(CmdString, con);
    10. SqlDataAdapter sda = new SqlDataAdapter(cmd);
    11. DataTable dt = new DataTable("Mitglied");
    12. sda.Fill(dt);
    13. grdMitglieder.ItemsSource = dt.DefaultView;
    14. //grdMitglieder ist mein DataGrid
    15. }
    16. }

    Das funktioniert super, mir werden alle spalten passend angegeben. nun aber zum speicherbutton.
    Das ist der bisherige Code:

    C#-Quellcode

    1. private void Button_Click(object sender, RoutedEventArgs e)
    2. {
    3. try
    4. {
    5. string query = "insert into MitgliedmitInfos (Vorname, Nachname, Land, Wohnort, Straße, Hausnummer, Emailadresse, Telefonnummer) values (@Vorname, @Nachname, @Land, @Wohnort, @Straße, @Hausnummer, @Emailadresse, @Telefonnummer)";
    6. SqlCommand sqlCommand = new SqlCommand(query, sqlConnection);
    7. sqlConnection.Open();
    8. sqlCommand.Parameters.AddWithValue("@Vorname", tbVorname.Text);
    9. sqlCommand.Parameters.AddWithValue("@Nachname", tbNachname.Text);
    10. sqlCommand.Parameters.AddWithValue("@Land", tbLand.Text);
    11. sqlCommand.Parameters.AddWithValue("@Wohnort", tbStadt.Text);
    12. sqlCommand.Parameters.AddWithValue("@Straße", tbStraße.Text);
    13. sqlCommand.Parameters.AddWithValue("@Hausnummer", tbHausnr.Text);
    14. sqlCommand.Parameters.AddWithValue("@Emailadresse", tbEmail.Text);
    15. sqlCommand.Parameters.AddWithValue("@Telefonnummer", tbTelefon.Text);
    16. sqlCommand.ExecuteScalar();
    17. }
    18. catch (Exception ex)
    19. {
    20. MessageBox.Show(ex.ToString());
    21. }
    22. finally
    23. {
    24. sqlConnection.Close();
    25. FillDataGrid();
    26. }
    27. }


    Die Ausgabe der MessageBox ist:

    C#-Quellcode

    1. System.NullReferenceExxception: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt. bei Projekt.MainWindow.Button_Click(Object sender, RoutedEventArgs e) in C:\Users\KSauer\Desktop\Projekt\MainWindow.xaml.cs:Zeile 57.

    Zeile 57 ist:

    C#-Quellcode

    1. sqlConnection.Open();


    weiß jemand warum das nicht funktioniert? Mein xaml code ist:

    XML-Quellcode

    1. <Window x:Class="Projekt.MainWindow"
    2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    4. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    5. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    6. xmlns:local="clr-namespace:Projekt"
    7. mc:Ignorable="d"
    8. Title="MainWindow" Height="450" Width="800">
    9. <Grid>
    10. <DataGrid Name="grdMitglieder" HorizontalAlignment="Left" Height="205" Margin="10,10,0,0" VerticalAlignment="Top" Width="772" SelectionChanged="GrdMitglieder_SelectionChanged_1"/>
    11. <TextBox Name="tbVorname" HorizontalAlignment="Left" Height="23" Margin="10,220,0,0" TextWrapping="Wrap" Text="Vorname" VerticalAlignment="Top" Width="120"/>
    12. <TextBox Name="tbNachname" HorizontalAlignment="Left" Height="23" Margin="150,220,0,0" TextWrapping="Wrap" Text="Nachname" VerticalAlignment="Top" Width="120"/>
    13. <TextBox Name="tbLand" HorizontalAlignment="Left" Height="23" Margin="10,260,0,0" TextWrapping="Wrap" Text="Land" VerticalAlignment="Top" Width="120"/>
    14. <TextBox Name="tbStadt" HorizontalAlignment="Left" Height="23" Margin="150,260,0,0" TextWrapping="Wrap" Text="Stadt" VerticalAlignment="Top" Width="120"/>
    15. <TextBox Name="tbStraße" HorizontalAlignment="Left" Height="23" Margin="290,260,0,0" TextWrapping="Wrap" Text="Straße" VerticalAlignment="Top" Width="120"/>
    16. <TextBox Name="tbHausnr" HorizontalAlignment="Left" Height="23" Margin="430,260,0,0" TextWrapping="Wrap" Text="Hausnummer" VerticalAlignment="Top" Width="120"/>
    17. <TextBox Name="tbEmail" HorizontalAlignment="Left" Height="23" Margin="10,300,0,0" TextWrapping="Wrap" Text="Emailadresse" VerticalAlignment="Top" Width="120"/>
    18. <TextBox Name="tbTelefon" HorizontalAlignment="Left" Height="23" Margin="150,300,0,0" TextWrapping="Wrap" Text="Telefonnummer" VerticalAlignment="Top" Width="120"/>
    19. <Button Content="Speichern" HorizontalAlignment="Left" Margin="691,372,0,0" VerticalAlignment="Top" Width="75" Click="Button_Click"/>
    20. </Grid>
    21. </Window>


    Vielen Dank im Voraus für eure Hilfe :)
    Das heißt, dass sqlconnection zwar vom Typ her bekannt ist, aber nicht mit new instanziiert wurde. Die Fehlermeldung sagt doch: sqlconnection ist null
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.