Inserire valori via sql in maiuscolo

venerdì 26 ottobre 2012 - 12.12
Tag Elenco Tags  VB.NET  |  .NET 4.0

danielsan27 Profilo | Newbie

salve come da oggetto ho la seguente query funzionante....

INSERT INTO [RESIDENTI] ([NOMINATIVI], [NOMINATIVI2], [APPARTAMENTO], [PUBBLICITA], [URLPUBB]) VALUES ('rossi', 'verdi', '5m', 0, 'ww')...

la stessa query è agganciata ad una detailview che mi inserisce i valori....ora ho l'esigenza che il campo appartamento VADA IN MAIUSCOLO..ho provato a settare attributi nella detailsviewe ma nn credo sia possibile...allora avevo pensato di usare direttamente l'sql per mettere in maiuscolo il campo che mi serve...utilizzando lo statement UPPER ()....ma nn funziona....forse sbalgio sintassi...ecco la query modificata che nn mi va...

INSERT INTO [RESIDENTI] ([NOMINATIVI], [NOMINATIVI2], [APPARTAMENTO], [PUBBLICITA], [URLPUBB]) VALUES (UPPER('ciao'), 'eee', '5m', 0, 'ww')

dove sbaglio??

..ovvimaente se c'e un metodo per settare le maiuscole anche da detailsview va bene =

ringrazio e saluto

alexmed Profilo | Guru

Ciao
Dovresti risolvere inpostando l'ItemStyle-CssClass del BoundField che devi trasformare.

Crei una classe ".pippo {text-transform: uppercase;}" e la assegni al BoundField ItemStyle-CssClass="pippo"

Ciao

alexmed

danielsan27 Profilo | Newbie

gia provato....senza risultati...
con quel metodo il dato SI VEDE SOLO MAIUSCOLO.....se x caso viene inserito in minuscolo...nel db ci va in minuscolo...provare x credere!!
:(

alexmed Profilo | Guru

Quindi non è solo una visualizzazione. Tu vuoi inserire il dato nel db in maiuscolo?
alexmed

danielsan27 Profilo | Newbie

esattamente....e con quel metodo nn funziona....il dato nel campo della detaiview lo vedi solo maiuscolo...ma se nn hai il caps inserito..nel db viene scritto minuscolo....io invece nel db devo avere il dato maiscolo :(

alexmed Profilo | Guru

Prova così:

Converti il tuo BoundField in un TemplateField.
Ti ritroverai un ItemTemplate un EditTemplate ed un InsertTemplate

Nell'InsertTemplate dove hai il campo Text='<%# Bind("TUO_CAMPO_DEL_DB") %>' aggiungi Text='<%# Bind("TUO_CAMPO_DEL_DB").ToString.ToUpper %>'


alexmed

danielsan27 Profilo | Newbie

Perdonami....
come faccio a convertire???
e cmq stiam smepre parlando del boundfield della detailsview incaricata dell'inserimento....o del boundfield presente tra gli insertparameters del mio accessdatasource???

questo è il codice:

<asp:AccessDataSource ID="AccessDataSource1" runat="server"
ConflictDetection="CompareAllValues" DataFile="~/App_Data/ARCHIVIO.accdb"
DeleteCommand="DELETE FROM [RESIDENTI] WHERE [ID] = ? AND (([NOMINATIVI] = ?) OR ([NOMINATIVI] IS NULL AND ? IS NULL)) AND (([NOMINATIVI2] = ?) OR ([NOMINATIVI2] IS NULL AND ? IS NULL)) AND (([APPARTAMENTO] = ?) OR ([APPARTAMENTO] IS NULL AND ? IS NULL)) AND [PUBBLICITA] = ? AND (([URLPUBB] = ?) OR ([URLPUBB] IS NULL AND ? IS NULL))"
InsertCommand="INSERT INTO [RESIDENTI] ([NOMINATIVI], [NOMINATIVI2], [APPARTAMENTO], [PUBBLICITA], [URLPUBB]) VALUES (UCASE(?), ?, ?, ?, ?)"
OldValuesParameterFormatString="original_{0}"
SelectCommand="SELECT * FROM [RESIDENTI]"
UpdateCommand="UPDATE [RESIDENTI] SET [NOMINATIVI] = ?, [NOMINATIVI2] = ?, [APPARTAMENTO] = ?, [PUBBLICITA] = ?, [URLPUBB] = ? WHERE [ID] = ? AND (([NOMINATIVI] = ?) OR ([NOMINATIVI] IS NULL AND ? IS NULL)) AND (([NOMINATIVI2] = ?) OR ([NOMINATIVI2] IS NULL AND ? IS NULL)) AND (([APPARTAMENTO] = ?) OR ([APPARTAMENTO] IS NULL AND ? IS NULL)) AND [PUBBLICITA] = ? AND (([URLPUBB] = ?) OR ([URLPUBB] IS NULL AND ? IS NULL))">

<InsertParameters>

<asp:Parameter Name="NOMINATIVI" Type="String" />
<asp:Parameter Name="NOMINATIVI2" Type="String" />
<asp:Parameter Name="APPARTAMENTO" Type="String" />
<asp:Parameter Name="PUBBLICITA" Type="Boolean" />
<asp:Parameter Name="URLPUBB" Type="String" />
</InsertParameters>


e questi i campi nella details view

<Fields>

<asp:BoundField DataField="NOMINATIVI" HeaderText="NOMINATIVI"
SortExpression="NOMINATIVI" />
<asp:BoundField DataField="NOMINATIVI2" HeaderText="NOMINATIVI2"
SortExpression="NOMINATIVI2" />
<asp:BoundField DataField="APPARTAMENTO" HeaderText="APPARTAMENTO"
SortExpression="APPARTAMENTO" />
<asp:CheckBoxField DataField="PUBBLICITA" HeaderText="PUBBLICITA"
SortExpression="PUBBLICITA" />
<asp:BoundField DataField="URLPUBB" HeaderText="URLPUBB"
SortExpression="URLPUBB" />
<asp:CommandField ShowInsertButton="True" />
</Fields>

vorrei inserire APPARTAMENTO IN MAIUSCOLO!!

e' poco che son passato ad asp.net e sto facendo uno sforzo immane

alexmed Profilo | Guru


<Fields>
<asp:BoundField DataField="NOMINATIVI" HeaderText="NOMINATIVI" SortExpression="NOMINATIVI" />
<asp:BoundField DataField="NOMINATIVI2" HeaderText="NOMINATIVI2" SortExpression="NOMINATIVI2" />
<asp:TemplateField HeaderText="APPARTAMENTO" SortExpression="APPARTAMENTO">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("APPARTAMENTO") %>'></asp:TextBox>
</EditItemTemplate>
<InsertItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("APPARTAMENTO").ToString.ToUpper %>'></asp:TextBox>
</InsertItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("APPARTAMENTO") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:CheckBoxField DataField="PUBBLICITA" HeaderText="PUBBLICITA" SortExpression="PUBBLICITA" />
<asp:BoundField DataField="URLPUBB" HeaderText="URLPUBB" SortExpression="URLPUBB" />
<asp:CommandField ShowInsertButton="True" />
</Fields>
alexmed

danielsan27 Profilo | Newbie

grazie x la risposta....ho provato le tue modifiche...mi da un errore in compilazione su questa riga:

<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("APPARTAMENTO").ToString.ToUpper %>'></asp:TextBox>

errore: 'Bind' non dichiarato. Potrebbe non essere accessibile a causa del livello di protezione.

Che roba l'e'?

sento che siam vicini........

alx_81 Profilo | Guru

>sento che siam vicini........
Scusate se intervengo.. ma la domanda mi nasce spontanea.. c'è un motivo di fondo per cui vuoi salvare i dati in maiuscolo?
Il db non deve essere quello che decide i formati. Hai necessità di avere Case Insensitive?

--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.microsoft.com/profiles/Alessandro.Alpi

danielsan27 Profilo | Newbie

il dato deve essere maiuscolo prima perche lo richiede il cliente...e dopo perche se x caso viene inserito in minuscolo...quando dopo vado a fare la query conforntando i dati nel codice...se confronto il risultato della queery es. "3c" con "3C" mi da esito negativo...e nn va bene....per questo vorrei affrontare a monte il problema inserendo tutto maiscolo e via...ma pare piu difficile di quanto creda...nn potevano direttamente mettere una proprieta "uppercase" nella details????? no melgio complicare le cose....

alx_81 Profilo | Guru

>il dato deve essere maiuscolo prima perche lo richiede il cliente...e
>dopo perche se x caso viene inserito in minuscolo...quando dopo
>vado a fare la query conforntando i dati nel codice...se confronto
>il risultato della queery es. "3c" con "3C" mi da esito negativo...e
>nn va bene....per questo vorrei affrontare a monte il problema
>inserendo tutto maiscolo e via...ma pare piu difficile di quanto
>creda...nn potevano direttamente mettere una proprieta "uppercase"
>nella details????? no melgio complicare le cose....
ma perchè sul database? se ti serve fare confronti in maiuscolo, falli sull'app con le funzioni ma non capisco perchè salvare il database i dati in maiuscolo.
Sinceramente per una cosa del genere farei un confronto tra stringhe case insensitive sul codice con la string compare (impostato IgnoreCase a true):
http://msdn.microsoft.com/en-us/library/zkcaxw5y.aspx
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.microsoft.com/profiles/Alessandro.Alpi
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-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5