2009-07-14 8 views
1

Meine SQL-Datenbank hat eine Spalte in einer Tabelle, die den Datentyp datetime hat und Nullwerte zulässt (weil ich entweder einen datetime-Wert oder ein Leerzeichen benötige) und diesen Wert lesen müssen und dann in einem Textfeld anzeigen. Das Problem besteht darin, dass der automatisch generierte Tableadapter beim Einfügen und Aktualisieren (wenn er vom Server-Explorer zum Dataset-Designer gezogen wird) alle Spalten mit Datumsangaben automatisch auslöst, wenn versucht wird, eine Null einzugeben, und es ist nicht möglich, dies zu ändern Eigentum. Obwohl diese Spalte Nullen in der Datenbank aufnehmen kann.Tabellenadapter datetime null Wert

Antwort

1

versuchen NULL festlegbare Datetime-Wert mit:

VB.net

Dim myDate As System.Nullable(Of DateTime) = Nothing 

C#:

DateTime? date = null; 

jetzt myDate oder Datum verwenden, um Spalte zuzuordnen.

EDIT: - Angenommen, Sie verwenden Tabellenadapter für Northwind-Datenbank. Dann neue hinzuzufügen, um Sie es verwenden können, wie folgt:

orderAdapter.InsertOrder(CustomerID,EmployeeID, 
     date, ////Use nullable date here 
     RequiredDate,ShippedDate,ShipVia,Freight,ShipName, 
     ShipAddress,ShipCity,ShipRegion,ShipPostalCode,ShipCountry); 
+0

Aber wie macht er das im TableAdapter? –

+0

Ok, also was Sie sagen, ist er kann diese Spalte in einer DataRow nicht auf Null setzen, da er die Spalte DateTime nicht machen kann? und kann die NullValue-Eigenschaft nicht ändern? –

1

This article schlägt vor, Sie brauchen eine Nullable-Version der Datetime-Variable als normale Datetime-Variable verwenden kann nicht NULL-Werte enthalten.