Meskipun kumpulan data diizinkan untuk "mengisi" adaptor data, saya biasanya sudah selesai dengan DataTable sebagai gantinya ketika menanyakan, saya hanya mengharapkan satu kumpulan hasil. Karena itu, saya akan melakukan pra-kueri tabel, hanya untuk mendapatkan strukturnya... sesuatu seperti
select whatever from yourTable(s) where 1=2
Ini akan mendapatkan kolom hasil yang diharapkan ketika Anda melakukan
DataTable myTable = new DataTable();
YourAdapter.Fill( myTable );
Sekarang Anda memiliki tabel lokal yang tidak akan gagal untuk ukuran konten karena tidak ada catatan yang dikembalikan, Anda sekarang dapat secara eksplisit membuka satu kolom yang dimaksud dan menyetel informasi tipe/ukuran datanya sesuai kebutuhan...
myTable.Columns["NameOfProblemColumn"].WhateverDataType/Precision = Whatever you need...
SEKARANG, skema lokal Anda sah dan kolom masalah akan diidentifikasi dengan presisi. Sekarang, masukkan kueri Anda yang tepat dengan klausa where yang tepat dan bukan 1=2 untuk benar-benar mengembalikan data... Karena tidak ada baris aktual di lintasan pertama, Anda bahkan tidak perlu melakukan myTable.Clear()
untuk menghapus baris... Jalankan kembali kueri dan dataAdapter.Fill()
.
Saya belum benar-benar mencoba karena saya tidak memiliki masalah data Anda untuk mensimulasikan masalah yang sama, tetapi proses teoretis akan membantu Anda tanpa harus secara eksplisit melalui semua kolom... hanya beberapa yang dapat menimbulkan masalah.