![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
superkeksi
![]() |
![]() also ich steh vor folgendem problem, dass ich gerne wissen möchte in welcher zeile sich ein eintrag befindet. sprich ich will zur zeilen nur von einem bestimmten datensatz kommen damit ich den ändern kann.
es müsst doch so eine funktion geben wie selectedindex bei den dropdownfeld oder? |
![]() |
![]() |
![]() |
#2 |
Hero
![]() Registriert seit: 24.04.2003
Alter: 53
Beiträge: 823
|
![]() So wie es sich liest verwendest Du ein Tool, welches denn?
Ansonsten, wenn Du folgende Struktur hast: tabelle1: id | name | vorname 1 | Huber | Hans 2 | Muster | Franz 3 .... ... 230 | Miller | Karl ... findest Du die Zeile mit "Miller": select * from tabelle1 where id=230 Oder habe ich Deine Frage missverstanden? Wenn ja, kannst Du ein Beispiel schildern?
____________________________________
Software is like sex, it\'s better when it\'s free! |
![]() |
![]() |
![]() |
#3 |
superkeksi
![]() |
![]() von der struktur passt es so wie du gesagt hast, aber ich brauch zum speichern der änderung von meinem datensatz die zeilen nr in der db. die ist nämlich nicht gleich wie die wertid, da schon manche einträge rausgelöscht wurden, aber nicht nachgefüllt worden sind.
|
![]() |
![]() |
![]() |
#4 |
Senior Member
![]() Registriert seit: 21.12.2003
Beiträge: 102
|
![]() Was ist den das für eine Datenbank, in der man gelöschte "Zeilen" aufüllen muss.
Mit Zeilennummern fängt man normalerweise in keiner Relationalen Datenbank etwas an. Nichtmal in Access. CU |
![]() |
![]() |
![]() |
#5 |
superkeksi
![]() |
![]() die lücken von der wertid hätten aufgefüllt werden solln und ned einfach gelöscht und die neuen am db ende angefügt.
|
![]() |
![]() |
![]() |
#6 |
Veteran
![]() |
![]() hm
ich seh das problem nicht.. wenn du ohnehin einen unique schlüssel wie die ID im beispiel hast, kannst du jede zeile darüber identifizieren... select id from table where name like "%mustermann%" anschliessend update table set name="neuername" where id = #idvonvorher was willst du mit der zeile? das hat überhaupt nix mit der zeile zu tun wenn du einen wert updaten willst. schlagt mich nicht wenn das SQL so nicht genau stimmt, hab schon länger kein SQL mehr gebraucht ![]() die id werte auffüllen macht ohnehin keinen sinn. die müssen nur unique sein und sind meistens ohnehin eine sequence bzw. auto_increment je nach db was für eine db ist das überhaupt? lg rem996 |
![]() |
![]() |
![]() |
#7 |
Senior Member
![]() Registriert seit: 21.12.2003
Beiträge: 102
|
![]() Gelöschte Primärschlüsselwerte wiederbenutzen verstößt gegen alle Gesetze der sauberen Datenbankprogrammierung.
Der Sinn dahinter bleibt mir schleierhaft. Normalerweise wird ein Primärschlüsselwert nirgends angezeigt, ausser es ist für eine einfache Identifiezierung erforderlich (Kundennummern, Matrikelnummern, Artikelnummern). Und selbst hierbei ists kein Problem, wenn mal ein Nummernloch vorkommt. Wiederbenutzen gelöschter Werte kann da nur Probleme machen. Stell dir vor, jemand gibt eine Bestellung über eine Artikelnummer auf. Der Artikel wird gelöscht und an seine Stelle tritt ein anderer Artikel mit gleicher ID. Bei erneuter Bestellung würder er was völlig falsches bestellen. CU |
![]() |
![]() |
![]() |
#8 | |
Inventar
![]() Registriert seit: 26.09.1999
Beiträge: 2.569
|
![]() Zitat:
Also, wenn dein "wertid" eine primärer Schlüssel ist, kannst du damit jeden Datensatz identifizieren und brauchst keine Zeilennummer. ;-( gruss, snowman
____________________________________
MediaMarkt? Ich bin doch nicht blöd, Mann! Vorsprung durch Technik Lesen Sie keine Anleitungen, FAQs, Readme - Files. Reine Zeitverschwendung. In den Newsgroups und Foren gibt es genug kompetente Leute, die mit großer Geduld immer wieder dieselben einfachen Fragen beantworten. Völlig kostenlos noch dazu! |
|
![]() |
![]() |
![]() |
#9 |
superkeksi
![]() |
![]() also so schaut mein code im moment aus
damit ändere ich den bestehenden datesatz in der db int wert = Convert.ToInt32(TextBox1.Text); DataSet dataSet41 = new DataSet(); SqlDataAdapter sqlDataAdapter1 = new SqlDataAdapter("select * from wkonf_tab", sqlConnection1); SqlCommandBuilder mySqlCommandBuilder = new SqlCommandBuilder(sqlDataAdapter1); sqlDataAdapter1.MissingSchemaAction = MissingSchemaAction.AddWithKey; sqlDataAdapter1.Fill(dataSet41, "wkonf_tab"); DataRow myDataRow = dataSet41.Tables["wkonf_tab"].Rows[wert]; myDataRow["bez"] = Convert.ToString(TextBox2.Text); myDataRow["einheit"] = Convert.ToString(TextBox3.Text); myDataRow["zeiteinheit"]= Convert.ToInt32(TextBox4.Text); myDataRow["letzte_aenderung_zeitbez"]= Convert.ToInt32(TextBox5.Text); myDataRow["letzte_aenderung_person_id"]= Convert.ToInt32(TextBox6.Text); myDataRow["ausserdienststellungszeitbez"]= Convert.ToInt32(TextBox7.Text); myDataRow["art_id"]= Convert.ToInt32(TextBox8.Text); myDataRow["interface_id"]= Convert.ToInt32(TextBox9.Text); sqlDataAdapter1.Update(dataSet41, "wkonf_tab"); @snowman weisst du eine andere methode wie ich das update von meinem datensatz machen kann? |
![]() |
![]() |
![]() |
#10 |
Master
![]() Registriert seit: 13.08.2003
Beiträge: 624
|
![]() Hallo!
Du liest aus der Textbox1.Text anscheinend den Zeilenwert aus. Woher kommt dieser? Ich würde anstatt des Zeilenwertes dort die ID speichern, dann statt: SqlDataAdapter sqlDataAdapter1 = new SqlDataAdapter("select * from wkonf_tab", sqlConnection1); "SELECT * FROM wkonf_tab WHERE ID=" & Textbox1.Text schreiben. Dh. du lest nur die zu aktualisierende Zeile aus. Zum Updaten für die Datarow nimmst du dann einfach die DataRow 0. DataRow myDataRow = dataSet41.Tables["wkonf_tab"].Rows[0]; Wobei du statt dem ganzen c# zeug ein stinknormales SQL Update Statement machen könntest, aber jeder wie er will. mfg Thomas ps: Ich würde andere Namen für die Objekte und Variablen verwenden, sonst kennst dich irgendwann gar nimmer aus. ![]() |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|