Teď jste offline a čekáte, až se znova připojí internet.

InvalidCastException výjimku při odkazu na hodnotu objekt DataColumn, které je NULL

Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.

Projděte si také anglickou verzi článku:310371
Tento článek se týká následujících oborů názvů knihovny tříd Microsoft .NET Framework:
  • System.data
  • System.data.SqlClient
Příznaky
Při odkazu hodnotu objekt DataColumn je NULL, zda zadaný nebo netypovou obdržíte výjimku.

Zadaný objektů DataSet obdržíte následující výjimce:
Došlo k neošetřené výjimce typu 'System.Data.StrongTypingException v invalidcast.exe
Další informace: Nelze získat hodnotu, protože je DBNULL.
Netypovou objektů DataSet obdržíte následující výjimce:
V microsoft.visualbasic.dll došlo k neošetřené výjimce typu 'System.InvalidCastException
Další informace: osazení z typu 'DBNULL zadejte 'řetězce není platný.
Příčina

Příčina 1

Při použití zadaného DataSet je způsobila výjimku při odkazu na hodnotu sloupce je NULL.

Příčina 2

Při použití netypovou DataSet je hodnota sloupce NULL a proměnné, ke kterému přiřadíte jej nepodporuje NULL.
Řešení

Příčina 1

Testování sloupce NULL před přístup jeho hodnotu. V netypovou DataSet použijte metodu DataRow.IsNull. Vlastnost DataRow.IscolumnnameNull použít v zadaný DataSet.

Příčina 2

Použít proměnnou typu příslušná data, která lze ukládat NULL.
Prohlášení
Toto chování je záměrné.
Další informace

Kroky pro reprodukci tohoto chování

  1. Spusťte aplikaci Visual Studio .NET.
  2. Vytvořit nový projekt aplikace Windows v Visual Basic .NET. Ve výchozím nastavení je Form1 přidán do projektu.
  3. Zkontrolujte, zda projekt obsahuje odkaz na obor názvů System.data.
  4. Umístěte ovládacího prvku tlačítko na Form1.
  5. Vlastnost Name na tlačítko změnit btnUntype a vlastnost text k Untype.
  6. Pomocí příkazu Imports v oboru názvů System a oboru názvů System.data, takže není nutné kvalifikovat deklarace obory názvů později v kódu. V části "Obecné deklarační" Form1 přidejte následující kód:
       Imports System   Imports System.Data   Imports System.Data.SqlClient					
  7. Přidejte následující kód v události btnUntype:
            Dim str As String        Dim ds As New DataSet()        Dim r As DataRow        Dim con As New SqlConnection("server=myserver;integrated security=sspi;database=northwind")        Dim da As New SqlDataAdapter("select * from customers where customerid='ANTON'", con)        da.Fill(ds, "customer")        r = ds.Tables(0).Rows(0)        'Uncomment to check for Null.         'If r.IsNull("fax") Then        '   MessageBox.Show("Value is Null")        'End If        str = r("fax") 'Comment line to check for Null.        MessageBox.Show(str) 'Comment line to check for Null.        					
  8. Upravit řetězec připojení (tentoserver) jako název příslušného serveru pro vaše prostředí.
  9. Uložit projekt. V nabídce Debug klepněte na tlačítko Start spustit projektu.
  10. Klepněte na tlačítko Untype. Všimněte si, že výjimka dřívější uvedené pro netypovou DataSet.
  11. Příkaz IF vložte a komentář řádky pod příkazu IF zkontrolovat NULL.
  12. Uložit projekt. V nabídce Debug klepněte na tlačítko Start a potom spusťte projektu. Všimněte si, že okno zprávy zobrazují "Hodnota je null".
  13. Umístěte jiného ovládacího prvku tlačítko na Form1.
  14. Vlastnost Name na tlačítko změnit btntype a vlastnost text na Typ.
  15. Vytvořit zadaný DataSet pomocí tabulky Zákazníci v databázi Northwind. Přejmenovat SQLDataAdaptersqlda.
  16. Přidejte následující kód události btntype:
            sqlda.Fill(DataSet11)        Dim str As String        Dim int As Integer        Dim cust As DataSet1.CustomersRow        cust = DataSet11.Customers.Rows(0)        'Uncomment to catch null values.          'If cust.IsFaxNull Then        '    MessageBox.Show("Value is Null")        'End If        str = cust.Fax()         MessageBox.Show(str)        '    Comment line to check for Null.					
  17. Spusťte aplikaci a klepněte na tlačítko Typ. Všimněte si, že výjimka.
  18. Vložte blok Pokud... Then kód a komentář poslední dva řádky kódu.
  19. Uložte aplikaci a potom spusťte aplikaci a Všimněte si okno zprávy.
Odkazy
Další informace o vytváření zadaný DataSet klepnutím na následující číslo článku databáze Microsoft Knowledge Base:
315678Jak vytvořit, použijte zadaný DataSet pomocí jazyka .NET
Další informace o ADO.NET klepnutím na následující číslo článku databáze Microsoft Knowledge Base:
313590Návod pro ADO.NET

Upozornění: Tento článek je přeložený automaticky

Vlastnosti

ID článku: 310371 - Poslední kontrola: 02/27/2007 04:28:08 - Revize: 2.7

Microsoft ADO.NET 2.0, Microsoft ADO.NET (included with the .NET Framework), Microsoft Visual Basic 2005, Microsoft Visual Basic .NET 2002 Standard Edition, Microsoft Visual Basic .NET 2003 Standard Edition

  • kbmt kbprb kbsystemdata KB310371 KbMtcs
Váš názor
Math.random() * 3)).toString(16)); var m = document.createElement("meta"); m.content = guid; m.name = "ms.dqid"; document.getElementsByTagName("head")[0].appendChild(m); uage in languagesListForLargeScreens track by $index" class="col-sm-6 col-xs-24 ng-scope"> Venezuela - Español
mp;t=">?DI=4050&did=1&t="> 4050&did=1&t=">.microsoft.com/ms.js'><\/script>"); >>