Laden...

In DB gespeicherte Daten werden erst nach erneutem Starten von Programm angezeigt.

Erstellt von rnkeee vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.255 Views
R
rnkeee Themenstarter:in
9 Beiträge seit 2011
vor 13 Jahren
In DB gespeicherte Daten werden erst nach erneutem Starten von Programm angezeigt.

verwendetes Datenbanksystem: Microsoft SQL

Hallo,

ich habe folgendes Problem: Ich schreibe über ein Windows-Form Daten in eine Datenbank. Diese Daten werden auch in die Datenbank geschrieben. Wenn ich mir nun aber in der gleichen Session die Daten anzeigen lassen möchte, werden diese nicht angezeigt. Erst nach einem Neustart der App kann ich die Daten sehen.

Wie könnte ich das hin bekommen, dass ich die Daten in der selben Session angezeigt werden?

Lieben Gruß,
Renke

F
84 Beiträge seit 2008
vor 13 Jahren

Moin Moin,

grundsätzlich kann man Daten die im SQL Server abgelegt sind auch sofort wieder abrufen und anzeigen lassen.

  1. Kommen denn die Daten im SQL Server an?
  2. Wie versuchst du die DAten abzurufen und anzuzeigen?

Gruß,
fod

R
rnkeee Themenstarter:in
9 Beiträge seit 2011
vor 13 Jahren

Also,

  1. Ja, die Daten kommen an! Da ich sie ja beim erneuten Starten und dann auch dauerhaft sehe.

  2. Ich habe mir ein DataGridView erstellt. Was ich dann mit einer BindingSource gefüllt habe.

F
10.010 Beiträge seit 2004
vor 13 Jahren

Und wo/wie erzeugst du die neuen Daten?

Du hast schon verstanden das eine DataTable/DataSet nicht ständig mit der DB verbunden ist und bei Neueintragungen auf anderem weg auch neu geladen werden muss?

F
84 Beiträge seit 2008
vor 13 Jahren

Hilfreich wäre in diesem Fall:

a) der Code der dafür zuständig ist die Daten vom SQL Server zu beziehen
b) der Code, der die Daten an das DGV bzw. die BindingSource bindet.

Wenn du im debug mal das Laden durch gehst, hast du dann daten in deiner DataTable / DataSet?

Gruß,
fod

R
rnkeee Themenstarter:in
9 Beiträge seit 2011
vor 13 Jahren
string ConnectionString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\Dokumente und Einstellungen\\d5a4ywh\\Desktop\\Leihsystem_Backup\\Leihvorgaenge.mdf;Integrated Security=True;User Instance=True";
                    SqlConnection myConnection = new SqlConnection(ConnectionString);

                    SqlCommand myCommand = new SqlCommand("INSERT INTO [Leiher] ([Vorname], [Nachname], [Team_Nr], [Personal_Nr]) VALUES (@Vorname, @Nachname, @Team_Nr, @Personal_Nr)", myConnection);

                    SqlParameter Vorname = myCommand.Parameters.Add("@Vorname", SqlDbType.NVarChar);
                    SqlParameter Nachname = myCommand.Parameters.Add("@Nachname", SqlDbType.NVarChar);
                    SqlParameter Team_Nr = myCommand.Parameters.Add("@Team_Nr", SqlDbType.BigInt);
                    SqlParameter Personal_Nr = myCommand.Parameters.Add("@Personal_Nr", SqlDbType.BigInt);


                    Vorname.Value = textBox2.Text;
                    Nachname.Value = textBox3.Text;
                    Team_Nr.Value = textBox4.Text;
                    Personal_Nr.Value = textBox1.Text;

                    myConnection.Open();


                    myCommand.ExecuteNonQuery();

                    myConnection.Close();

Damit schreibe ich die Daten in die Datenbank.

Also, ich weiß, dass der GridView nicht dauerhaft an die Datenbank gebunden ist. Daher will ich ja wissen, wie ich es schaffen kann, dass die Daten beim Öffnen des Views neu geladen werden.

public Leihvorgänge_anzeigen()
        {
            InitializeComponent();
        }

        private void Leihvorgänge_anzeigen_Load(object sender, EventArgs e)
        {
            // TODO: Diese Codezeile lädt Daten in die Tabelle "leihvorgaengeDatenverbindung.View1". Sie können sie bei Bedarf verschieben oder entfernen.
            this.view1TableAdapter.Fill(this.leihvorgaengeDatenverbindung.View1);

        }

Das ist der Code für den View!

Ich hoffe, dass ich die richtigen Codestellen gepostet habe.. 😃

F
10.010 Beiträge seit 2004
vor 13 Jahren
  1. ein view1TableAdapter.Fill würde ausreichen die Daten neu zu laden.
  2. Warum benutzt ExecuteNonQuery?

Wenn du die Daten direkt in die DataTable des [Leiher] eintragen und per tableAdapter.Update schreiben würdest, wäre das schon erledigt.