Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

SqlDataAdapter.Fill() — Przepełnienie konwersji

Chociaż zestaw danych jest dozwolony do "wypełniania" adaptera danych, zwykle robiłem to z DataTable, ponieważ podczas wykonywania zapytań oczekuję tylko jednego zestawu wyników. Powiedziawszy to, wykonałbym wstępne zapytanie do tabeli, aby uzyskać jej strukturę... coś w stylu

select whatever from yourTable(s) where 1=2

Spowoduje to uzyskanie oczekiwanych kolumn wyników, gdy wykonasz

DataTable myTable = new DataTable();
YourAdapter.Fill( myTable );

Teraz, gdy masz lokalną tabelę, która nie zawiedzie dla rozmiaru zawartości, ponieważ nie zostaną zwrócone żadne rekordy, możesz teraz jawnie przejść do tej jednej kolumny, o której mowa i ustawić jej typ danych / informacje o rozmiarze zgodnie z potrzebami...

myTable.Columns["NameOfProblemColumn"].WhateverDataType/Precision = Whatever you need...

TERAZ Twój lokalny schemat jest legalny, a kolumna problemu zostanie zidentyfikowana z dokładnością. Teraz wprowadź właściwe zapytanie z odpowiednią klauzulą ​​where, a nie 1=2, aby faktycznie zwrócić dane... Ponieważ w pierwszym przebiegu nie ma żadnych wierszy, nie musisz nawet wykonywać myTable.Clear() aby wyczyścić wiersze... Po prostu ponownie uruchom zapytanie i dataAdapter.Fill() .

Właściwie nie próbowałem, ponieważ nie mam twoich problemów z danymi, aby symulować ten sam problem, ale teoretyczny proces powinien cię pokonać bez konieczności jawnego przechodzenia przez wszystkie kolumny ... tylko kilka, które mogą stanowić problem.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nie można otworzyć bazy danych, ponieważ jest to wersja 851. Ten serwer obsługuje wersję 782 i wcześniejsze. Ścieżka zmiany wersji nie jest obsługiwana

  2. Zatrzaski SQL Server i ich wskazanie problemów z wydajnością

  3. Wybór i konfiguracja sprzętu dla SQL Server 2016 Standard Edition

  4. Jak włączyć SQL Server Agent XP za pomocą T-SQL?

  5. Zmodyfikuj wartość domyślną w SQL Server