Query

sabato 13 gennaio 2007 - 16.48

melmar20 Profilo | Junior Member

ciao Raga avrei bisogno di un grosso aiuto....

Dunque io vorrei leggere un dato posto in una tabella....mi spiego meglio

Ho la seguente Tabella

Categoria questi i campi:
IdCategoria PK;
Nome UNIQUE;
IdCategoriaPadre;

Vorrei creare una funzione in vb.net,o se c'è un metodo più semplice (sentivo parlare di Request.QueryString)che mi restituisca il valore posto nel campo IdCategoria quando gli passo il Nome della Categoria,e me lo converta in intero....

Spero di essere stato chiaro

alx_81 Profilo | Guru

>ciao Raga avrei bisogno di un grosso aiuto....
Ciao, sono sempre io..
>
>Dunque io vorrei leggere un dato posto in una tabella....mi spiego
>meglio

>Ho la seguente Tabella
>Categoria questi i campi:
>IdCategoria PK;
>Nome UNIQUE;
>IdCategoriaPadre;
>
>Vorrei creare una funzione in vb.net,o se c'è un metodo più semplice
>(sentivo parlare di Request.QueryString)che mi restituisca il
>valore posto nel campo IdCategoria quando gli passo il Nome della
>Categoria,e me lo converta in intero....
Vuoi leggere da vbnet l'id della categoria sapendo il nome?
Il nome lo hai? da dove lo prendi?
è un sito web o una windows application?
Mi servono un po' tutte queste informazioni, sennò non so come aiutarti..
>

Alx81 =)

http://blogs.dotnethell.it/suxstellino

melmar20 Profilo | Junior Member

Grazie alx_81, cercherò di essere il più chiaro possibile...spero di riuscirci....

Dunque io sto cercando di creare un portale Web,utilizzando la tecnologia .net,come strumento di sviluppo sto utilizzando Visual Studio 2005...

Nella pagina asp che ho creato ci sono 2 form,nel primo l'utente deve inserire il nome della nuova Categoria che intende memorizzare nel database e nel secondo il nome della CategoriaPadre a cui associare la nuova Categoria....

Quindi io quando clicco sul comando "Aggiungi"il dovrei leggere l'ID della categoria che ho inserito nel secondo Form quindi memorizzare nel database la nuova tupla, che avrà come Id un intero che sarà ricavato automaticamente visto che il campo IdCategoria è un contatore,come Nome la stringa inserita nel primo form,e come IdCategoriaPadre l'IdCategoria che vorrei ricavare facendo una query sul Database e passandogli CategoriaPadre.Text....

aiutoooooooo

alx_81 Profilo | Guru

>Grazie alx_81, cercherò di essere il più chiaro possibile...spero
>di riuscirci....
>
>Dunque io sto cercando di creare un portale Web,utilizzando la
>tecnologia .net,come strumento di sviluppo sto utilizzando Visual
>Studio 2005...
>
>Nella pagina asp che ho creato ci sono 2 form,nel primo l'utente
>deve inserire il nome della nuova Categoria che intende memorizzare
>nel database e nel secondo il nome della CategoriaPadre a cui
>associare la nuova Categoria....
Scusami se mi permetto, ma non ha più senso fare inserire tutte le categorie nel seguente modo?:
- Fai una form con 2 campi, un textbox "NOME CATEGORIA" e un dropdownlist con all'interno tutte le categorie già inserite.
- Inserisci il nome della nuova categoria
- Selezioni fra le già presenti la categoria che sarà la categoria padre di quella che stai per inserire
- Se non selezioni la categoria padre, quel nome categoria è una categoria padre.
In questo modo gestisci con una sola form l'inserimento di categorie, facendo una sola operazione.


>
>Quindi io quando clicco sul comando "Aggiungi"il dovrei leggere
>l'ID della categoria che ho inserito nel secondo Form quindi
>memorizzare nel database la nuova tupla, che avrà come Id un
>intero che sarà ricavato automaticamente visto che il campo IdCategoria
>è un contatore,come Nome la stringa inserita nel primo form,e
>come IdCategoriaPadre l'IdCategoria che vorrei ricavare facendo
>una query sul Database e passandogli CategoriaPadre.Text....
No, non mi sembra proprio una strada corretta. anche perchè, essendo sulla stessa riga, evita pure di andare per ".text" a fare delle query..
Dunque.. ti preparo un esempio e poi mi sai dire cosa ne pensi, ok?
Utilizzo la tua tabella categoria per farti la pagina aspx, poi controlli se quello che faccio risolve semplicemente il tuo problema, ok?
ciao!

>
>aiutoooooooo

Alx81 =)

http://blogs.dotnethell.it/suxstellino

alx_81 Profilo | Guru

Allora, assumendo come valido il nome Categoria (della tua tabella) e prendendo come valida la struttura della medesima tabella la seguente:

CREATE TABLE Categoria ( IDCategoria int IDENTITY(1,1) PRIMARY KEY CLUSTERED, Nome varchar(100) NOT NULL, IDCategoriaPadre int NULL ) CREATE UNIQUE NONCLUSTERED INDEX IX_Categoria_Nome ON Categoria ( Nome )


lancia sul database sql server questi due comandi (sono stored procedure):
CREATE PROCEDURE proc_RitornaCategorie AS BEGIN SET NOCOUNT ON; SELECT IDCategoria, Nome FROM Categoria ORDER BY Nome END

e

CREATE PROCEDURE proc_InserisciCategoria ( @Nome varchar(100), @IDCategoriaPadre int ) AS BEGIN SET NOCOUNT ON; IF @IDCategoriaPadre = -1 BEGIN -- inserisco la categoria come padre (nessun IDCategoriaPadre) INSERT INTO Categoria (Nome) SELECT @Nome END ELSE BEGIN -- inserisco la categoria con l'id padre INSERT INTO Categoria (Nome, IDCategoriaPadre) SELECT @Nome,@IDCategoriaPadre END END

le suddette hanno rispettivamente il compito di ritornare l'elenco delle categorie inserite e di inserire una nuova categoria.
Una volta lanciati (e corretti se il nome della tua tabella e dei tuoi campi sono differenti), aggiungi al tuo web site l'allegato.. e provalo.
dimmi se tutto ti quadra.
PS: Nell'allegato, segui i commenti, e cambia ciò che è indicato. ok?
ciao!

Alx81 =)

http://blogs.dotnethell.it/suxstellino

melmar20 Profilo | Junior Member

Grazie mille adesso testo tutto e poi ti dico

Alx_81, mi è venuta una nuova idea....vorrei impostare il campo IdCategoriaPadre come Foreing key references IdCategoria in modo da poter utilizzare il CASCADE quando vorrò cancellare le tuple.....

Che ne pensi?

Il codice che mi hai apssato và molto bene...ti ringrazio,vorrei aggiungere questo vincolo per facilitare la cancellazione

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