wie kann ich bei einer Spalte in einer Tabelle angeben, dass man nur Zahlen eingeben kann??? und wie kann ich in der Tabelle eine Dopplung von Daten vermeiden?
Hey MartinR,
innerhalb deiner DataTable sind DataColumns definiert. Diese haben die Eigenschaft DataType. Damit kannst du das für die Spalte festlegen
DataColumn colDecimal = new DataColumn("DecimalCol");
colDecimal.DataType = System.Type.GetType("System.Decimal");
myTable.Columns.Add(colDecimal);
greets george
danke!
hatte in der Zeile hier:
DataColumn colDecimal = new DataColumn("DecimalCol");
hinten das "DecimalCol" vergessen und deshalb funzte es noch nicht.
Hast Du schon mal angeschaut was DataColumn so alles bietet?
Original von MartinR
hat noch jemand ne Idee zur Vermeidung von doppelten Daten?
Gib mal in der Hilfe ein: "unique constraint"
Mit Constraints kann du festlegen, dass die Werte bestimmter Spalten eindeutig sein müssen. Sinnvollerweise definierst du so einen Constraint auch in der Datenbank. Die zusätzliche Definition auf dem DataSet ist notwendig, weil das DataSet die Daten zwischenspeichert. Die Eindeutigkeitsprüfung sollte also bereits dort stattfinden, ist aber nicht ausreichend, weil ja ein anderer Client ebenfalls Daten einfügen kann.
Insofern musst da an zwei Stellen prüfen. Einmal beim Einfügen in das DataSet und einmal beim Abspeichern in der DB (hier kommt dann eine Exception bei Nicht-Eindeutigkeit).
gibts noch ne Möglichkeit zu verhindern , dass leere Datensätze eingefügt werden?
Hallo MartinR,
definiere in der Tabelle (auch DB):
NOT NULL,
dann kannst Du keine Null-Werte eintragen, ansonsten gibt es einen Fehler. Außerdem kann man auch einen Standardwert vorgeben, der eingesetzt wird, wenn keine Angabe bei einem INSERT vorhanden ist.
Ciao
Norman-Timo
A: “Wie ist denn das Wetter bei euch?”
B: “Caps Lock.”
A: “Hä?”
B: “Na ja, Shift ohne Ende!”
und wie mach ich das? mit .allowDBNull gehts schonmal nicht.
also von der Datenbank erstmal abgesehen, will erstmal blos verhindern das in der Tabelle leere Zellen vorkommen können.
Habs zwar noch nie mit .AllowDBNull probiert aber eigentlich legt man doch das Schema in der Datenbank über SQL Scripts fest?!
Weiterhin übernimmt .NET doch auch die Schema Informationen wenn du nicht grade was spezielles machst.
Für (fast) alle Datenbank Systeme (DBMS) gibts doch außerdem Klassen, damit die Integration reibungslos geht (auch Connectors genannt).
DBMS die auf jeden Fall Connectors haben:
SQL Server 2000 (1.1 vorinstalliert)
SQL Server 2005 (2.0 vorinstalliert)
Oracle (1.1 && 2.0 vorinstalliert, dennoch sollte man den mitgelieferten von Oracle besser nehmen).
Firebird / Interbase (bitte auf Website von FB schaun!)
MySQL (auch hier bei der Website schaun (.NET Connector 1.0))
Ausschließlich MS Access nutzt nur OLEDB.
Gruß Christian
also wie ich in meiner Tabelle(ohne DB-Anbindung) die Dopplung von Werten in einzelnen Spalten verhinder, weis ich ja nun, aber nun hab ich ein neues Problem:
Ist es möglich die Dopplung von gleichen Datensätzen zu vermeiden?
Beispiel:
Spalte1 Spalte2
a b
a b <--- vemeiden, da bereits vorhanden!
a c <---diese Kombination wäre erlaubt
wenn ja, wie?
wieder mal ne Frage: Gibts eine Eigenschaft oder ähnliches, um mehrere Zellen(mit STRG) in einer Tabelle markieren zu können ???
eigentlich so wie ich es schon sagte ^^ Ich möchte in meiner Tabelle mehrere, einzelne Zellen markieren können...muss doch irgendwie gehen...!?
und noch ne Frage: Wie kann ich alle Zeilen in meiner Tabelle löschen ???
hat sich erledigt
aber wenn mir noch jemand mit dem markieren helfen könnte wäre nich schlecht 🙂