Impostare Table predefinita

sabato 16 luglio 2005 - 21.22

Seventyone Profilo | Newbie

grazie al codice fornitomi da Cteniza sono riuscito a caricare le table presenti sul DB ora vorrei fare in modo che selezionandone uno e premendo un bottone questo sia impostato come predefinito e quindi all'apertura del programma si scriva direttamente su quello scelto
mi spiace stressarvi ma sono diversi giorni che sbatto la testa su queste due cose senza riuscire a risolverle da solo
ringrazio anticipatamente per l'aiuto
ciao

Cteniza Profilo | Guru

>le table presenti sul DB ora vorrei fare in modo che selezionandone

Domanda: che oggetto usi per visualizzare i dati delle tabelle?.

>uno e premendo un bottone questo sia impostato come predefinito

Cosa vuol dire predefinito

>e quindi all'apertura del programma si scriva direttamente su
>quello scelto

Scrive che cosa?

>mi spiace stressarvi ma sono diversi giorni che sbatto la testa
>su queste due cose senza riuscire a risolverle da solo
>ringrazio anticipatamente per l'aiuto

Cerca di spiegarti meglio.
Descrivi la tua form, gli oggetti che usi, che cosa vorresti fare.




Seventyone Profilo | Newbie

ho aggiunto il file zip con la form che è molto più semplice rispetto a quella che mi hai passato tu visto che non mi servivano le altre possibilità di scelta da te inserite
non utilizza la oledb ma una select command da un dataadapter che visualizza il risultato in un datagrid.

la form sarà chiamata da una form padre dalla quale salvo i dati in una tabella che adesso devo indicare da codice; poichè ogni anno è necessario salvare i dati su una nuova tabella vorrei poter impostare questa tabella(quella nuova) come quella attiva (predefinita) su cui salvare i dati, per fare questo avevo pensato di selezionare la tabella che mi interessa sul datagrid (proverò a visualizzarli in una listbox) e tramite un bottone o un ContextMenu impostarla come attiva per poi passare la selezione effettuata ai metodi che hanno bisogno di saperlo(per fare un update, un insert, una select o altro)

mi spiace se ho esposto male il quesito e spero di essere stato più chiaro




Cteniza Profilo | Guru

Io ho guardato il tuo programma.
A parte "che non fa quasi niente" se con la tua operazione vuoi scegliere una riga e poi utilizzare quella come tabella di riferimento, tabella che cambi di nome ogni anno ti puoi risparmiare la fatica.

Infatti puoi mettere una unica tabella in cui conservare i tuoi dati che abbia la propria chiave (es: ID) ed un campo con l'anno di riferimento, così quando l'apri o utilizzi la prendi con un nome da te prefissato e non hai neanche più bisogno di mostrare l'elenco delle tabelle presenti.

In alternativa puoi prefissare il nome della tabella con "nome tabella" + anno corrente (preso dalla data), è una porcheria che molti fanno e che quindi puoi fare anche tu (salvo poi con l'andar del tempo accorgerti della cazzata :)) ).

A proposito, dalle labels / testi inseriti si può desumere che tu non abbia pienamente idea di che cosa sono gli oggetti "database" e " tabella" e di conseguenza quale rapporto c'è tra i due.


Seventyone Profilo | Newbie

perdonami il ritardo della risposta ma sono rientrato oggi.
vorrei che fosse assolutamente chiaro che nella mia risposta non c'è nessuna vena polemica:
>Io ho guardato il tuo programma.
non hai guardato un programma ma una form (quindi una classe) con un metodo all'interno che fà parte di un progetto che nella totalità sarà un programma
(per inciso non è assolutamente detto che il metodo rimanga lì ma sarà probabilmente inserito in una classe insieme agli altri metodi che opereranno sulla table in modo da poterla riutilizzare in futuro con altre applicazioni)
>A parte "che non fa quasi niente"
vero,
1° l'ho detto nel post che era molto più semplice della form postata da te,
2° ci potrebbero essere 2 motivi perchè è così:
a) ho creato una form appositamemte per l'esempio mettendo solo l'indispensabile
b) magari voglio che sia così, che faccia poco, tutto quello che deve essere fatto sarà svolto da altri componenti, form o classi che siano
(o forse volevi che appesantissi la form con tutti i metodi che andranno ad operare sulla table e sul database?).
>se con la tua operazione vuoi... ... ti puoi risparmiare la fatica.
lascia scegliere a me se risparmiarmi la fatica o meno
>Infatti puoi mettere una unica tabella.... ..... e non hai neanche più bisogno di mostrare l'elenco delle tabelle presenti.
nel mio post ho scritto che è necessario salvare i dati in nuova tabella
>In alternativa puoi...... ...., è una porcheria che molti fanno e che quindi puoi fare anche tu (salvo poi .... .....cazzata :)) ).
se gli altri fanno "porcherie" non vedo perchè dovrei farle anche io, ho chiesto consiglio ed aiuto al forum anche per evitare di farne; vorrei anche ricordarti che "sbagliando si impara" e magari la porcheria fatta oggi insegnerà a non farne altre domani
>A proposito, dalle labels / testi inseriti si può desumere che
>tu non abbia pienamente idea di che cosa sono gli oggetti "database"
>e " tabella" e di conseguenza quale rapporto c'è tra i due.
visto il titolo di questo e dell'altro thread non avresti dovuto fare questa deduzione; forse avresti dovuto dedurre che l'utente che deve usufruire del programma non conosce la differenza tra table e Database e dargli un titolo tipo "Manager Tables" e "Tables Presenti"non farebbe altro che confonderlo e rendergli più difficoltoso l'uso del programma.
Detto questo ribadisco che non sono un programmatore esperto e che sono qui con umiltà a chiedere un aiuto su come risolvere un problema che mi sono trovato ad affrontare, se tu o chiunque altro potete darmi un suggerimento su come risolverlo gliene sarei molto grato, sono sicuro che ci sono ancora una enormità di cose che non conosco e sono qui a chedere a tutti voi una di queste per poter imparare dalla vostra esperienza e sperando un giorno di poter a mia volta essere in grado di aiutare qualcun'altro anche grazie a ciò che imparo da chi in questo momento ha più esperienza di me.
Ora mi rimane il problema di come impostare una table come "attiva"(o predefinita come la chiamo io) per poterla poi passare ai metodi che hanno necessità di questo parametro, ogni suggerimento o soluzione sono bene accetti, se vi servono altre informazioni non esitate a chiederle vi risponderò il più in fretta possibile, grazie a tutti ciao Germano.

Seventyone Profilo | Newbie

...segue
>In alternativa puoi prefissare il nome della tabella con "nome
>tabella" + anno corrente (preso dalla data), è una porcheria
>che molti fanno e che quindi puoi fare anche tu (salvo poi con
>l'andar del tempo accorgerti della cazzata :)) ).

se gli altri fanno "porcherie" non vedo perchè dovrei farle anche io, ho chiesto consiglio ed aiuto al forum anche per evitare di farne; vorrei anche ricordarti che "sbagliando si impara" e magari la porcheria fatta oggi insegnerà a non farne altre domani

>A proposito, dalle labels / testi inseriti si può desumere che
>tu non abbia pienamente idea di che cosa sono gli oggetti "database"
>e " tabella" e di conseguenza quale rapporto c'è tra i due.

visto il titolo di questo e dell'altro thread non avresti dovuto fare questa deduzione(altrimenti avrei scritto "Database" non "Table");
forse avresti dovuto dedurre che l'utente che deve usufruire del programma non conosce la differenza tra table (o tabella che dir si voglia) e Database e dargli un titolo tipo "Manager Tables" e "Tables Presenti"non farebbe altro che confonderlo e rendergli più difficoltoso l'uso del programma.
Detto questo ribadisco che non sono un programmatore esperto e che sono qui con umiltà a chiedere un aiuto su come risolvere un problema che mi sono trovato ad affrontare, se tu o chiunque altro potete darmi un suggerimento su come risolverlo gliene sarei molto grato, grazie a te ho scoperto come richiamare le tables presenti in un database utilizzando la INFORMATION_SCHEMA.TABLES che mi era totalmente sconosciuta, sono sicuro che ci sono ancora una enormità di cose che non conosco e sono qui a chedere a tutti voi una di queste per poter imparare dalla vostra esperienza e sperando un giorno di poter a mia volta essere in grado di aiutare qualcun'altro anche grazie a ciò che imparo da chi in questo momento ha più esperienza di me.

Ora mi rimane il problema di come impostare una table come "attiva"(o predefinita come la chiamo io) per poterla poi passare ai metodi che hanno necessità di questo parametro, ogni suggerimento o soluzione sono bene accetti, se vi servono altre informazioni non esitate a chiederle vi risponderò il più in fretta possibile
grazie a tutti
ciao Germano.

Cteniza Profilo | Guru

Non ti scaldare, non volevo mica offenderti, ti avrei ignorato allora!.

Comunque il mio consiglio rimane:
Secondo me dovresti strutturare le tue tabelle in modo tale che possano avere un nome fisso (lo scegli tu il nome).
All'interno metti, tra gli altri, due campi:
Il campo chiave primaria, unica
Un altro campo che indichi l'anno di appartenenza.

L'unica alternativa è fare tante tabelle con un nome calcolabile "prefisso (o suffisso) comune" + l'anno di riferimento.

In questo modo comunque non hai bisogno di presentare nessun elenco di tabelle perchè per ogni anno sei in grado di calcolarlo.

Ultima ipotesi, vai avanti con la possibilità di dare all'utente la lista delle tabelle disponibili (come intendevi fare originariamente), cosa che ti sconsiglio di fare e che personalmente farei solo su costrizione o se qualcuno mi paga (dopo averlo opportunamente ragguagliato sui rischi / costi di una simile operazione).


Seventyone Profilo | Newbie

Ciao, innanzitutto scusami per l'estremo ritardo con cui scrivo questo post ma ho avuto dei problemi e non ho potuto farlo prima, poi volevo assicurarti che non mi sono offeso ma evidentemente la mia risposta ti ha dato un'impressione contraria e me ne dispiace, posso solo scusarmi se ho dato l'impressione di volerti attaccare, credimi se ti dico che non era mia intenzione.
Spero che accetterai le mie scuse.
Comunque ti ringrazio nuovamente per l'aiuto che mi hai fornito, è stato davvero essenziale.
ciao Germano

Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5