DetailPage-MSS-KB

Microsoft Knowledge Base

Identificativo articolo: 944389 - Ultima modifica: giovedì 3 gennaio 2008 - Revisione: 2.1

 

In questa pagina

Sintomi

In un'applicazione di Microsoft .NET Framework 2.0, è possibile utilizzare la classe SqlBulkCopy per copiare dati da un System.Data.DataTable a una tabella in Microsoft SQL Server. Se il nome della tabella contiene un carattere di punto (.), è visualizzato il seguente messaggio di errore:
System.InvalidOperationException non è stata gestita
Messaggio = "Impossibile ottenere le informazioni delle regole di confronto di colonna per la tabella di destinazione. Se la tabella non è nel database corrente deve essere qualificato il nome utilizzando il nome del database (ad esempio [mydb]...[mytable](ad esempio [mydb]...[mytable]); vale per le tabelle temporanee (ad esempio #mytable verrà specificata come tempdb..#MyTable). "
Source="System.Data"

Cause

Questo problema è causato da un problema in System.Data.dll il file.

Workaround

Per aggirare il problema, evitare punto caratteri (.) in nomi di tabella.

Se è necessario utilizzare un carattere di punto (.) in un nome di tabella, utilizzare il carattere punto (.) come parte della convenzione di denominazione SQL. Ad esempio, è possibile utilizzare un nome di tabella analogo al seguente:
Server.database.Schema. tablename

Status

Microsoft ha confermato che questo problema riguarda i prodotti sono elencati nella sezione "Si applica a".

Informazioni

Procedura per riprodurre il problema.

  1. Nel database Northwind, eseguire l'istruzione di SQL riportata di seguito: selezionare
    select * into [test.33] where 1 = 0
    --Create a table named [test.33].
    
  2. Creare un'applicazione Visual C# e quindi eseguire il codice riportato di seguito:
    static void Main(string[] args)
            {
                SqlConnection con = new SqlConnection("Integrated Security=SSPI;Initial Catalog=Northwind;Data Source=.");
                con.Open();
                SqlConnection dst = new SqlConnection("Integrated Security=SSPI;Initial Catalog=Northwind;Data Source=.");
                dst.Open();
                SqlCommand com = new SqlCommand("select * from customers", con);
                SqlDataReader dr = com.ExecuteReader();
                SqlBulkCopy sbc = new SqlBulkCopy(dst);
                sbc.DestinationTableName = "Northwind.dbo.[Test.33]";
                sbc.WriteToServer(dr); // The failure occurs here.
                dst.Close();
                con.Close();
            }
    

Informazioni dello stack di chiamate

at System.Data.SqlClient.SqlBulkCopy.AnalyzeTargetAndCreateUpdateBulkCommand(BulkCopySimpleResultSet internalResults)
       at System.Data.SqlClient.SqlBulkCopy.WriteToServerInternal()
       at System.Data.SqlClient.SqlBulkCopy.WriteRowSourceToServer(Int32 columnCount)
       at System.Data.SqlClient.SqlBulkCopy.WriteToServer(IDataReader reader)

Le informazioni in questo articolo si applicano a:
  • Microsoft .NET Framework 2.0
  • Microsoft .NET Framework 3.0
  • Microsoft .NET Framework 3.5
Chiavi: 
kbmt kbexpertiseadvanced kbtshoot kbprb KB944389 KbMtit
Traduzione automatica articoliTraduzione automatica articoli
Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell’utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell’utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell’articolo: 944389  (http://support.microsoft.com/kb/944389/en-us/ )
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.
Condividi
Altre opzioni per il supporto
Forum del supporto di Microsoft Community
Contattaci direttamente
Ricerca di un partner certificato Microsoft
Microsoft Store