Al momento sei offline in attesa che la connessione Internet venga ristabilita

Messaggio di errore quando si utilizza la classe SqlBulkCopy per copiare dati da una risorsa in una tabella di dati in .NET Framework 2.0: "System.InvalidOperationException: Impossibile ottenere informazioni sulle regole di confronto di colonne per la tabella di destinazione"

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
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)

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 944389 - Ultima revisione: 01/03/2008 16:28:59 - Revisione: 2.1

Microsoft .NET Framework 2.0, Microsoft .NET Framework 3.0, Microsoft .NET Framework 3.5

  • kbmt kbexpertiseadvanced kbtshoot kbprb KB944389 KbMtit
Feedback
;did=1&t=">le="display:none;" onerror="var m=document.createElement('meta');m.name='ms.dqp0';m.content='true';document.getElementsByTagName('head')[0].appendChild(m);" onload="var m=document.createElement('meta');m.name='ms.dqp0';m.content='false';document.getElementsByTagName('head')[0].appendChild(m);" src="http://c1.microsoft.com/c.gif?">