Announcement

Collapse
No announcement yet.

SQL Daten in TextBox ändern

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

  • SQL Daten in TextBox ändern

    Hallo

    Ich würde gerne wissen, wie ich Daten aus einer Zelle in dataGridView umändere. Ich benutze C#/Windows Forms und eine lokale SQL Datenbank.
    Ich klicke in eine Reihe und dann wird der Inhalt von Zelle1 in TextBox1 und der von Zelle2 in TextBox2 angezeigt. Bis jetzt habe ich es so gelöst:
    cmd.CommandText = "update [MyTable] set name = '" + textBox2.Text + "' where name = '"+textBox1.Text+"'";
    Aber ich muss ja jetzt in TextBox2 die Daten ändern, damit sie in Zelle1 geändert werden. Wie kann ich das von TextBox1 in Zelle1 und TextBox2 in Zelle2 lösen?
    Ich bin über jede Hilfe froh.
    Zuletzt editiert von BEST66; 16.10.2020, 21:25.

  • #2
    Was genau hat das mit SQL zu tun?
    dataGridView gibt es nicht in SQL
    Christian

    Comment


    • #3
      Ups, stimmt! Wie verschiebe ich den Post denn in das C# Forum?

      Comment


      • #4
        verschoben
        Christian

        Comment


        • #5
          Danke! Vielleicht kann mir jetzt jemand bei meinem Problem helfen, im richtigen Forum?

          Comment


          • #6
            Es gibt zu viele Wege um sowas zu machen das mir gar nicht klar ist was du da hast und was ich raten sollte.

            Fangen wir mal mit offensichtlichen Fragen an. Wieso editierst du nicht im Grid? Das DatagridView unterstützt editieren. Gut funktioniert das aber nur wenn man Databinding benutzt. Benutzt du Databinding? Wen ja mit welchem Datentyp dahinter? DataTables, Entity Framework Entities, sonstige fertige Produkte, was selbst gebasteltes?


            Comment


            • #7
              Also, soweit ich das herauslesen kann, benutze ich DataTables.
              Ich habe auch noch eine zweite kleine Frage zu DataGridView:
              Ich habe 2 Spalten und in der zweiten steht ein Datum(Bsp.: 20.01.2020), ich möchte dieses Datum nach dem Monat aufsteigend sortieren.

              Comment


              • #8
                Immer noch zu dünn beschrieben um dir zu helfen. Sowohl bei deiner ursprünglichen Frage als auch bei deiner Zusatzfrage.

                Wäre das hier so sortiert wie du s möchtest?

                19.02.2020
                15.04.2010
                16.06.2015
                16.06.2012
                16.06.2019
                12.06.2000
                19.06.2008
                01.08.1899

                Ist dein Datum auch vom Typ DateTime(gut) in deiner DataTable oder ein String(eher schlecht)?


                Comment


                • #9
                  Genau. Das Datum möchte ich so sortiert haben.

                  Code Ausschnitt:

                  DataTable dta = new DataTable();
                  SqlDataAdapter dataadp = new SqlDataAdapter(cmd);
                  dataadp.Fill(dta);
                  dataGridView1.DataSource = dta;

                  Die DataGridView wird mit zwei Spalten gefüllt: Name,Datum

                  Comment


                  • #10
                    Ralf fragte:
                    Ist dein Datum auch vom Typ DateTime(gut) in deiner DataTable oder ein String(eher schlecht)?
                    Das ist maßgebend, wie das order by ausgestaltet wird
                    Christian

                    Comment


                    • #11
                      Ich habe die Frage falsch verstanden! Mein Datum ist vom Typ string.(wird direkt von einer TextBox mit .Text eingefügt)

                      Comment


                      • #12
                        Das ist schonmal eher ungünstig. Ist den wenigstens das Format garantiert? Oder dürfen Leute einfach irgendwas eintragen?

                        Da hier jetzt vermutlich eher schwierige string Operationen nötig sind anstatt einfache Datetime Operationen sollte du sagen welche Datenbank du benutzt. Der Teil in SQL ist Produktabhängig

                        Comment


                        • #13
                          Ich kontrolliere natürlich die Eingabe. Sie muss: 10 Zeichen beinhalten(01.01.2000), an der 2 und 5 Stelle einen Punkt haben und die anderen Stellen müssen Integer Werte sein.
                          Gibt es da irgendeine möglichkeit einen string in DateTime zu konvertieren?
                          Bezüglich Datenbank bin ich mir nicht sicher. Ich nutze die standartmäßig in Visual Studio eingebaut ist.

                          Comment


                          • #14
                            Klingt nach SqlServer. In dem Fall wenn es eine string Spalte ist.

                            Code:
                            SELECT MeineLiebeSpalte1, MeineLiebeSpalte2 FROM MeineLiebeTabelle ORDER BY SUBSTRING MeineLiebeDatumSpalte, 2, 2
                            Konvertieren geht natürlich ist aber maximal der zweitbeste Weg. Versuche erst gar keinen string zu haben. Die UI Bibliotheken haben üblicherweise ein Control das sich DateTimePicker oder so ähnlich nennt. Das solltest du anstatt einer TextBox nehmen.
                            Dann hast du auch gleich einen DateTime Typ der nach allen Regel kultureller Eigenheiten des Users korrekt ist. Wenn du jetzt noch Parameter nutzt anstatt dein Sql String wie im ersten Beitrag per string Konkatenation zusammenzubasteln wärst du auf der sicheren Seite.
                            Zuletzt editiert von Ralf Jansen; 26.10.2020, 19:53. Reason: Um die Parameter des SubString gehören noch Klammern. Leider ist dieses Forum kaput und ich darf dort keine Klammern angehen ohne das irgendein Parser posten verhindert.

                            Comment


                            • #15
                              Das mit dem DateTimePicker sehe ich mir auf jeden Fall nochmals an.

                              Aber jetzt zu diesem Sql Befehl. Es ordnet sich nichts!?
                              cmd.CommandText = "SELECT Name, Datum FROM [MyTable] ORDER BY SUBSTRING Datum, 2, 2";
                              Zuletzt editiert von BEST66; 26.10.2020, 20:21. Reason: Klammern nach dem Wort Substring und nach 2 habe ich natürlich auch gemacht.

                              Comment

                              Working...
                              X