Textbox e database

venerdì 21 marzo 2008 - 21.58

kontax Profilo | Junior Member

ciao,
premetto di essere alla prima esperienza nell'utilizzo di asp.net...e avrei bisogno di un po' di aiuto...
allora, sto cercando di realizzare un progetto basato su asp.net e c#
il problema è questo, vorrei visualizzare dentro a delle textbox dei valori letti da un db di sql server. questi valori dovrebbero essere quelli corrispondenti a una serie di dropdownlist. le modifiche apportate dovrebbero avvenire anche sul database..è possibile?
come faccio?
tenete conto che sono veramente un novellino, quindi se riuscite a darmi una risposta semplice ve ne sarò grato!
grazie cmq!

gae58 Profilo | Senior Member

ciao,

mi sa che stai affrontando il mio stesso percorso.

Hai fatto la mia stessa domanda. Se fai il ragionamento che facevo io dovresti chiarirti cosa vuoi fare ed ottenere.

La questione della ddl e delle textBox non l'ho capita.

Leggiti la gridView con detaiulView e fomView ed ADO.NET per la gestione manuale delle textBox da dataBase

ciao
Gaetano

fguida Profilo | Expert

In effetti non è molto chiaro quello che ti occorre; per visualizzare una variabile in una Textbox utilizzerai la proprietà .Text....però per quanto riguarda db e dropdownList dovresti spiegarti meglio.
Ciao

Francesco

kontax Profilo | Junior Member

ho dato un occhio ai tuoi post, ma mi sa che sono problemi diversi..
intanto semplifico una po' la domanda partendo dalla prima cosa che non mi riesce..
visualizzare dati presi dal db con una sqldatasource..il textbox non ha il parametro datasource, quindi come faccio?
girando su internet ho visto che si parla di binding..è quella la soluzione?nel caso...che è il binding??che parametri devo dare se scrivo una cosa tipo TextBox1.DataBind=...
magari qualcuno mi sa dire dove trovare risorse per chiarirmi le idee su queste cose?
grazieeee

fguida Profilo | Expert

Ascolta, per il Databind() trovi qui:

http://msdn2.microsoft.com/it-it/library/system.web.ui.webcontrols.textbox.databind.aspx

ma oltre a questa richiesta, ci sono anche altre indicazioni su come "manipolare" i dati e gli oggetti web.

Francesco

gae58 Profilo | Senior Member

ti premetto che anch'io sono alle prime armi.

Per quel che ho capito l'sqlDataSource viene usato quasi sempre in concomitanza con gli oggetti che BS mette a disposzione come grid e form.

Per il resto devi essere tu a scrivere il codice per la connessione, il command ed altro.

Si il binding è quello che viene usato per valorizzare l'oggetto. In questo caso la textBox.

Potreti chiarire cosa vuoi fare?

la grid e la form con il detail ti risolvono parecchi problemi


Gaetano

kontax Profilo | Junior Member

ok grazie, provo a darci un occhiata e vedo se può servire per risolvermi il problema
pensavo non fosse particolarmente difficile mettere un valore letto dal db in una textbox..
grazie ancora, ora che avete fatto l'errore di rispondermi però vi stresserò
ciaooo

fguida Profilo | Expert

No, non è difficile, ma a quel punto io utilizzerei il datareader, che ti permette di scorrere i record che hai ricavato.
Una volta che hai il tuo valore, lo assegi alla proprietà text della textBox, ed il gioco è fatto.
I GridView invece necessita di un datasource, ed una volta associato i dati vengono visualizzati nella grid in automatico

Francesco

kontax Profilo | Junior Member

per gae: grazie dell'interessamento!
ma guarda, io volevo semplicemente leggere dal database un dato, tramite una query di select e poi mettere questo dato in una textbox. poi dovrei farci anche delle modifiche, ma quello a tempo debito...
per fare la connessione al db pensavo si potesse usare semplicemente la sqldatasource dei controlli standard dei dati opportunamente impostata. il problema è applicare al textbox.text il valore che mi passarebbe sqldatasource.. probabilmente non cho capito nulla e non posso usare il datasource già pronto però..

kontax Profilo | Junior Member

ok grazie francesco!
allora provo ad approfondire il datareader se mi dici che è la cosa migliore!
scusate l'ignoranza, tenete conto che sono i primissimi giorni che uso asp e non ho nessuno a cui chiedere aiuto nè manuali o roba del genere..
grazie a tutti, se riesco a ricavare qualcosa col datareader vi faccio sapere!

gae58 Profilo | Senior Member

ciao ti capisco perfettamente perchè anch'io pensavo fosse più semplice. Ma alla luce delle informazioni che ad oggi ho non è così.

In base alla piccola esperienza che ho ti consiglio di slegarti completamente dalla logica, dalla sintassi e dall'esperienza della progettazione in ambiente windows.

Comunque ti ripeto che la maggior parte delle cose le puoi fare con gli oggetti che VS ti mette a disposizione, per il resto puoi usare il datReader, così come ti è stato consigliato. Per una questione specifica l'ho utilizzato ieri, perdendo un po' di tempo del capirlo.

ciao
Gaetano

kontax Profilo | Junior Member

eh, il problema è che io non ho esperienze di programmazione, al max conosco un pochino di jsp e c++..
cmq dopo un bel po' di lavoro e di tempo trascorso cercando sul web dovrei essere riuscito a fare quello che mi serve, però se possibile volevo conferma di aver capito come funziona la cosa..
io ho scritto questo codice, ed effettivamente mi visualizza il campo giusto nella textbox:
public void form(object sender, EventArgs e)
{
string @nome = DropDownList1.SelectedValue;
string connstring = @"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Program Files\Microsoft SQLServer\MSSQL.1\MSSQL\Data\pistro.mdf; integrated Security=True;Connect Timeout=30;User Instance=True";
SqlConnection conn = new SqlConnection(connstring);
SqlCommand cmd = new SqlCommand("SELECT tipo FROM reference_comportamenti WHERE nome=@nome", conn);
SqlParameter parameter1 = new SqlParameter("@nome", SqlDbType.VarChar);
parameter1.Value = DropDownList1.SelectedValue;
cmd.Parameters.Add(parameter1);
conn.Open();
SqlDataReader reader = cmd.ExecuteReader();
reader.Read();
string r = reader[0].ToString();
TextBox1.Text = r;
reader.Close();
conn.Close();
}
volevo conferme:
1)quando ho scritto reader[0], praticamente sono andato a leggere il primo valore di un array di risultati?
2)il .ToString mi converte da un oggetto a una stringa?
3)quello che ho scritto poteva essere fatto in maniera migliore/più efficente?

un' ultima cosa..ora devo fare il processo opposto. il valore visualizzato nella textbox deve essere modificabile e tale valore deve venire inserito nel db..cosa posso usare?cioè, si tratta di far si che la query eseguita sia un insert con i parametri appropriati presi dalla textbox? o ci sono altri metodi?
ciao, grazie ancora per la disponibilità!
(Buona Pasqua!)

UPDATE: ok ho capito come fare l'update dei dati del db. ho usato questo codice, e sembra funzionare. volevo sapere se c'è qualche errore, passagio fatto mael, o se semplicemente c'erano metodi migliori..grazie ancora
protected void TextBox1_TextChanged(object sender, EventArgs e)
{
string nuovo = TextBox1.Text;
string nome = DropDownList1.SelectedValue;
string connstring = @"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\abracadabra.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
SqlConnection conn = new SqlConnection(connstring);
SqlCommand cmd = new SqlCommand("UPDATE reference_comportamenti SET tipo=@nuovo WHERE nome=@nome", conn);
SqlParameter parameter1 = new SqlParameter("@nuovo", SqlDbType.VarChar);
parameter1.Value = nuovo;
cmd.Parameters.Add(parameter1);
SqlParameter parameter2 = new SqlParameter("@nome", SqlDbType.VarChar);
parameter2.Value = nome;
cmd.Parameters.Add(parameter2);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}

gae58 Profilo | Senior Member

ciao,

per quel che ne capisco sembra di si, anche se al posto tuo invece di scrivere sempre la stringa di connessione, se ce l'hai nel web.config, la richiamerei così:
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["nomeConnessione"].ConnectionString);

e loo stesso per il parametro, ho visto che alcuni scrivono una sola riga invece di definirla e poi aggiungerla

ciao

Gaetano

gae58 Profilo | Senior Member

ciao,

per quel che ne capisco sembra di si, anche se al posto tuo invece di scrivere sempre la stringa di connessione, se ce l'hai nel web.config, la richiamerei così:
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["nomeConnessione"].ConnectionString);

e loo stesso per il parametro, ho visto che alcuni scrivono una sola riga invece di definirla e poi aggiungerla

ciao

Gaetano

kontax Profilo | Junior Member

ok, infatti mi ero chiesto come si faceva a richiamarla dal web.config, solo che non sapevo come farlo!
perfetto allora grazie ancora dei consigli.
ciao!
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