2010-04-16 23 views
6

In Visual Studio DataSource Designer esiste un modo per aggiornare una tabella e le sue relazioni/vincoli di chiave esterna mantenendo le query personalizzate?Visual Studio DataSet Designer Aggiorna tabelle

Il modo in cui lo sto facendo al momento è rimuovere il tavolo e aggiungerlo di nuovo. Questo aggiunge tutte le relazioni e aggiorna tutti i campi.

Inoltre, se si modifica un tipo di dati dei campi, esiste un modo per aggiornare automaticamente tutti i campi nell'origine dati? Di nuovo senza cancellare la tabella e aggiungerla di nuovo.

Motivo per questo perché alcuni dei miei TableAdapter hanno un numero piuttosto elevato di query complesse ad essi collegate e quando rimuovo la tabella viene rimosso anche l'adattatore con tutte le sue query.

Sto utilizzando Visual Studio 2008 e mi collego a un database MySQL.

Qualcuno ha un'idea?

risposta

6

Ogni tabella ha una query predefinita (quella in alto con il controllo su di essa). Quando hai trascinato le tabelle nel set di dati per creare la query, ha scritto un'istruzione SQL che utilizza per creare lo schema della tabella. Mantieni semplice questa query, potresti non utilizzarla effettivamente nel codice e puoi sempre modificare quella query per aggiornare lo schema della tabella.

Ogni volta che si apre la query predefinita si connette all'origine dati e consente di selezionare nuove colonne che prima non erano presenti. Se si desidera aggiornare le colonne esistenti, eliminare tutte le colonne fuori dalla tabella prima di tentare di aprire la query. Quando salvi la query, le colonne aggiornate vengono ripristinate.

Verificare che la stringa di connessione disponga delle autorizzazioni per visualizzare le informazioni sulla colonna.

+0

Grazie per quello :) In realtà ho iniziato a utilizzare NHibernate come suggerito sopra, ma grazie comunque, questo mi avrebbe aiutato prima di iniziare a utilizzare NHibernate. –

+0

Non ha funzionato per me. – SeaDrive

+0

"lo usa per creare lo schema del tuo tavolo" non ha molto senso. (Lo schema è più di un elenco di colonne). Gestire una colonna con una lunghezza rivista, nessuna quantità di "refresh" sul DataSet, la tabella in questione o la colonna nella tabella sembrano comunicare con xsd. Sono stato in grado di espandere l'oggetto DataTable, selezionare la colonna e modificare la proprietà MaxLength nell'elenco delle proprietà. (Ma lascia la domanda sul perché "refresh" non è rinfrescante senza risposta. Ora con VS2012, ma sono sicuro che ho avuto lo stesso problema con VS2008.) – fortboise

1

È possibile aggiungere/modificare/rimuovere campi e relazioni navi, ma suggerirei di cercare in NHibernate.

1

Dovresti essere in grado di fare clic con il pulsante destro del set di dati in solution explorer e selezionare "Esegui strumento personalizzato" per aggiornare la tabella e le sue query/relazioni.

Se tale comando non è presente, controllare che le proprietà del set di dati abbiano "MSDataSetGenerator" nel campo Strumento personalizzato.

+0

Non ha funzionato per me. – SeaDrive

1

Ho segnalato questo a MSFT ma nessuna risposta. Il progettista si blocca tutto il tempo sulla più semplice delle istruzioni SQL. Quello che ho trovato che funziona per me è.

  1. Aggiungere una nuova tabella al progettista.
  2. Salvalo.
  3. Arrestare Visual Studio 2010.
  4. Inizio VS 2010.
  5. aggiungere uno o due ulteriori istruzioni SQL e seguire i passi 2-4 di nuovo.

Questo è un dolore al collo, ma l'unica cosa che impedisce al designer del set di dati di Visual Studio di appendere. Ho sperimentato in questo stesso numero in VS 2008. Mi sto connettendo a Oracle ma ancora chiudendo VS e inizialo il backup funziona, ma in realtà, questo non ha senso.

0
  1. fare clic destro sul nome DataSet e selezionare Proprietà set di dati
  2. sotto la casella di query si vedrà un pulsante per l'aggiornamento di campi.
  3. Fare clic su Progettazione query e il nuovo campo dovrebbe essere visualizzato nell'elenco delle tabelle.
Problemi correlati