La sequenza di installazione di Visual Studio 2008 è la seguente:
-
-
Installare Visual Studio 2008, che comprende già il supporto per Ajax .NET.
-
Installare il SP1 di Visual Studio 2008 che comprende già il supporto per SilverLight 2.0
-
Installare i controlli AjaxControlToolkit-Framework3.5SP1-NoSource.zip. Dopo aver eseguito il download, fare click sul file: AjaxControlExtender.vsi
-
Tag: dotnet
Antonio Sammartino |
0 Commenti 
|

Discussioni |

Integrazioni

05/02/2009 3.08.40 | Social Bookmark
Una pagina ASP.NET è un oggetto denominato web form, molto simile ad un’applicazione windows. E' costituito da un insieme di web form, ognuno dei quali contiene oggetti, cioè parti di codice lato client HTML, controlli server o altri oggetti ereditati, per esempio, mediante la direttiva Import.
Una pagina ASP.NET è essenzialmente costituida da due file strettamente connessi:
-
un file con l’estenzione .aspx, in cui vi è memorizzato il codice dichiarativo
-
un file con l’estensione .aspx.cs (se il linguaggio utilizzato è C#), in cui vi è memorizzato il codice della classe associta alla pagina aspx.
-
Il collegamento fra i due file è realizzato mediante una dichiarazione inserita all’inizio del file con l’estensione .aspx. Il formato è il seguente:
<%
@
Page
CodeFile
="Default.aspx.cs"
Inherits
="Blog_Default"
%>
La direttiva CodeFile indica il nome del file in cui è contenuto il codice associato alla pagina, mentre Inehrits indica il nome della classe che deriva System.Web.UI.Page,in cui è inserito il codice.
Una pagine ASP.NET, se non è stata già compilata, la prima volta che viene richiesta avviene la compilazione just-in-time. La classe compilata è detta assembly e viene salvata sul disco per essere riutilizzata alla successiva richiesta.
La classe Page
Quando un PC client richiede una pagina con estensione .aspx, presente sul web server, i componenti inseriti nella pagina sonocompilati in modo da formare un'unica entità. L’oggetto risultante viene utilizzato per elaborare le richieste in arrivo, al fine di restituire i dati richiesti dal PC client.
Questa unità è una classe che eredita, dalla classe Page del framework, una serie di caratteristiche. La classe page è quindi un contenitore per tutti i componenti inseriti nella pagina.
Alcune delle più importanti proprietà sono:
-
Application. Per ogni applicazione web, vi è un'istanza di questo oggetto che viene condivisa da tutti i client che accedono all'applicazione.
-
Session. E' un riferimento all'oggetto Session che gestisce la sessione corrente
-
Cache. Viene utilizzata per memorizzare dati che restano inalterati tra successive richieste delle pagine.
-
EnableViewState. Valore booleano che indica se i comandi server devono memorizzare il proprio
ViewState
-
IsPostBack. Indica che la pagina viene caricata per la prima volta
-
Request. Consente di accedere alle informazioni relative alla richiesta HTTP
-
Response. Consente di accedere e modificare la risposta HTTP
Alcuni dei metodi della classe page sono:
-
DataBind Associa i dati ad un oggetto
-
FindControl Consente di individuare un control nella pagina
-
MapPath Recupera il percorso fisico di uno specifico percorso virtuale
Tag: dotnet,aspnet
Antonio Sammartino |
0 Commenti 
|

Discussioni |

Integrazioni

27/12/2008 9.34.36 | Social Bookmark
Prima di ASP.NET, per elaborare l’input degli utenti occorreva scrivere due pagine. La prima di natura statica conteneva un tag
che inviava, mediante l'attributo action, una serie di campi ad seconda pagina di tipo dinamica, il cui compito era di elaborare i valori inviati.
Il postback in ASP.NET rende invisibileal programmatore questo meccanismo, attraverso il controllo server form.
Il form server side è indispensabile per gestire i controlli server, si può omettere solo se non si prevede una interazione con la pagina. L'attributo method predefinito è post ed i valori sono disponibili nella collezione Request.Form.
Con la medesima tecnica viene mantenuto lo stato di alcuni controlli, mediante la variabile ViewState. Il ViewState è una variabile stringa, memorizzata in un campo nascosto della pagina aspx, in cui viene salvato lo status della pagina prima di essere inviata al server. Questo status viene letto e trasferito nei diversi control quando il server restituisce la pagina al browser. Il
ViewState consente quindi di ricostruire lo stato della pagina, in quanto le comunicazioni HTTP client-server sono prive di stato.
L’architettura postback offre la possibilità di realizzare pagine HTML contenenti controlli con cui l'utente può interagire. I controlli attivano eventi che il programmatore deve scrivere per realizzare gli opportuni handler che devono gestire l'interazione. Quando si attiva la richiesta di un web form, vengono generati i seguenti eventi:
-
Page_Init, viene generato quando la pagina deve essere inizializzata
-
Page_Load viene generato quando la pagina deve essere caricata
-
Control Event viene generato quando è un comando (ad esempio un pulsante) che attiva l'inviato della pagina al server.
-
Page_Unload viene generato quando la pagina è scaricata dalla memoria
La differenza tra il Page_Init ed il Page_Load è che nel Page_Init il ViewState non è stato ancora caricato, per cui i comandi mantengono i valori predefiniti anziché i valori impostati durante il postback.
Per gestire l'evento Page_Load, in genere si utilizza la proprietà IsPostBack della classe Page. Se IsPostBack è true, ci troviamo in un contesto di postback, cioè la pagina è stata già caricata, ma viene restituita al web server a seguito del verificarsi di un evento sul client. Se IsPostBack è falsa, la pagina viene caricata per la prima volta.
Nella pagina aspx, la prima riga è una direttiva che specifica il linguaggio utilizzato, dove si trova il codice, il nome della classe da cui ereditare e l'AutoEventWireup, impostato su true per default, per indicare che deve essere generato in automatico un evento al caricamento della pagina, che sarà gestito dal metodo Page_Load, presente nel file che contiene il codice, Default.aspx.cs.
Tag: dotnet,aspnet
Antonio Sammartino |
0 Commenti 
|

Discussioni |

Integrazioni

27/12/2008 9.34.36 | Social Bookmark
In un’applicazione Windows, un Form è una classe che può contenere controlli da cui è possibile derivare oggetti mediante l’ereditarietà visuale, mentre in un'applicazione web ciò non è possibile, a causa della presenza di codice di markup.
In ASP.NET 1.x e successive è possibile, mediante gli User Control, definire in un file separato una parte di una pagina ASPX da poter successivamente inserire in una o più pagine web.
In ASP.NET 2.0 sono state introdotte le Master Pages e le Content Pages, che non realizzano l'ereditarietà visuale, ma forniscono una struttura comune (grafica e logica), che rende possibile inserire dinamicamente in una pagina principale (o Master) deverse pagine di contenuto.
Una Master Page è essenzialmente un template, definito in un file che deve avere l'estensione .master. E' una normale pagina aspx, in cui la direttiva @Page è stata sostituita dalla direttiva @Master.
Tipicamente, in una Master Page vengono inseriti tutti i controlli che devono essere condivisi, mentre le parti dinamiche vengono definite mediante controlli segnaposto la cui sintassi è la seguente
<asp:ContentPlaceHolder />
Le pagine di contenuto forniscono solo i contenuti, presentandoli secondo le impostazioni della Master Page a cui fanno riferimento.
Una Content Page è una pagina ASPX che contiene solo controlli Content Pages. Alla Content Page viene associata una Master Page contenente controlli ContentPlaceHolder.
-
La corrispondenza tra Content e ContentPlaceHolder si basa sul valore della proprietà ID del placeholder.
-
Un controllo Content viene associato a un controllo ContentPlaceHolder tramite la relativa proprietà ContentPlaceHolderID.
-
All'interno di una pagina di contenuto solo un controllo Content può fornire il contenuto per un controllo ContentPlaceHolder nella pagina master.
Una Master Page è quindi un contenitore di modelli:
-
Offre una comoda soluzione per inserire in una struttura, i contenuti di un insieme di pagine che costituiscono i diversi contenuti da visualizzare.
-
Utilizza un segnaposto di contenuto per definire le sezioni della pagina master che successivamente saranno sostituite con il contenuto definito nelle pagine Content .
Quando si utilizzano le Master Page e le relative pagine di Contenuto, occorre aggiungere i tag di documento XHTML (html, head e body), esclusivamente nella pagina master, in quanto nelle Content Pages vi sono solo i contenuti da inserire nei segnaposto della pagina master.
Una Master Page può essere inserita in un progetto mediante la selezione Aggiungi nuovo elemento e quindi Master-Page. La struttura della Master Page è la seguente:
<%
@Master
Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits= "MasterPage"%>
<html>
<head
id
="HeadMP"
runat
="server">
<
title
>
Master Page</title>
</
head
>
<
body
>
<
form
id
="formMP"
runat
="server">
<
div
>
<
asp:
contentplaceholder
id
="PlaceHolder"
runat
="server">
</
asp:
contentplaceholder
>
</
div
>
</
form
>
</
body
>
</
html
>
Un'associata content Page ha la seguente struttura:
<%
@
Page
Language
="C#"
MasterPageFile
="MasterPage.master"
AutoEventWireup
="true"
CodeFile
="Home.aspx.cs"
Inherits
="Home"
Title
="Untitled Page"
%>
<
asp:
Content
ID
="Content2"
ContentPlaceHolderID
="PlaceHolder"
runat
="server">
<
asp:
Label
ID
="Label1"
runat
="server"
Text
="Benvenuto"></
asp:
Label
>
</
asp:
Content
>
Tag: dotnet,aspnet
Antonio Sammartino |
0 Commenti 
|

Discussioni |

Integrazioni

28/12/2008 9.34.36 | Social Bookmark
Site Navigation, è una caratteristica che consente di creare una struttura necessaria per navigare in un’applicazione web in modo sicuro, facile e intuitiva. ASP.NET offre un sistema, basato sul concetto di Provider. Al Site Navigation è possibile associare tre
nuovi controlli:
-
Menu, controllo che visualizza la struttura del sito attraverso un menu a tendina personalizzabile.
-
TreeView, controllo che visualizza la struttura del sito in un menu ad albero .
-
SiteMapPath, controllo che visualizza la posizione corrente dell'utente rispetto alla struttura del sito.
Ognuno di questi controlli richiede la presenza della "Site Map", una fonte di dati in grado di rappresentare l'intera struttura del sito. La Site Map può essere definita in uno o più file .sitemap (file XML) oppure da uno o più custom provider.
Definizione della Site Map
Sono possibili diversi modi per creare la Site Map. Di default, ASP.NET 2.0 si aspetta di trovare nella root dell'applicazione il file web.sitemap; con una struttura ben definita.
<?
xml
version
=
"1.0"encoding="utf-8" ?>
<
siteMap
xmlns
=
"http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<
siteMapNode
url
=
""title="Menu"description="Menu">
<
siteMapNode
url
=
"Home.aspx"title="Home" description="Home" />
<
siteMapNode
url
=
"Persone.aspx"title="Persona" description="Persona" />
</
siteMapNode
>
</
siteMap
>
Questo file è una collezione di oggetti di tipo SiteMapNode, con la dichiarazione dei suoi 3 principali attributi: url (indirizzo della pagina), title (titolo della pagina) e description, (descrizione della pagina, cioè il contenuto del relativo tooltip).
E' possibile cambiare il nome del .sitemap oppure è necessario dover gestire più di uno, in questo caso è sufficiente dichiarare nel web.config che esiste un provider specifico (che puo essere anche sempre lo stesso) per ogni file .sitemap creato. Un esempio di dichiarazione da inserire nel web.config è la seguente:
<siteMap
defaultProvider
="
Sitemap1"
>
<
providers
>
<
add
name
=
"SiteMap1"
type
=
"System.Web.XmlSiteMapProvider"
siteMapFile
=
"First.sitemap"
/>
<
add
name
=
SiteMap2"
type
="S
ystem.Web.XmlSiteMapProvider"
siteMapFile
="
Second.sitemap"
/>
</
providers
>
</
siteMap
>
Tag: dotnet,aspnet
Antonio Sammartino |
0 Commenti 
|

Discussioni |

Integrazioni

28/12/2008 9.34.36 | Social Bookmark
ADO.NET è una libreria di classi il cui fine è di consentire una interazione con Database, file testo, file XML, ecc.
Data Provider
ADO.NET consente ad un'applicazione web di scambiare informazioni con diversi tipi di fonti dati o Database. Tuttavia, non vi è un insieme unico di classi, per riferirsi ai diversi database, ma per ogni tipo di database è stato implementato un diverso Data Provider, cioè librerie di classi, che definiscono un modo comune per interagire con specifiche sorgenti dati o protocolli.
I pricipali provider sono i seguenti:
|
Provider Name
|
API prefix
|
Data Source Description
|
|
ODBC Data Provider
|
Odbc
|
Sorgenti dati con interfaccia ODBC
|
|
OleDb Data Provider
|
OleDb
|
Sorgenti dati che espone interfaccie OleDb (Access o Excel)
|
|
Oracle Data Provider
|
Oracle
|
Per database Oracle
|
|
SQL Data Provider
|
Sql
|
Per interfaccia con Microsoft SQL Server.
|
|
|
|
|
Namespace
Per utilizzare gli oggetti ADO.NET associati al database Sql-Server occorre dichiarare i seguenti namespace:
using System;
using System.Data;
using System.Data.SqlClient;
ADO.NET Objects
ADO.NET comprende diversi oggetti che possono essere utilizzati per interfacciarsi con un database SQL Server. I più importanti sono:
-
SqlConnection Object
-
SqlCommand Object
-
SqlParameter Object
-
SqlDataReader Object
-
SqlTransaction Object
-
DataSet Object Sql
-
DataAdapter Object
Tag: adonet
Antonio Sammartino |
0 Commenti 
|

Discussioni |

Integrazioni

05/01/2009 9.34.36 | Social Bookmark
Per interrogare un base dati è necessario disporre di una connessione al database. Il fine è di indicare Server, Nome del database, nome utente, password ed altri parametri necessari per il collegamento al database. L’oggetto connessione viene utilizzato dai comandi per specificare su quale database occorre eseguire i comandi.
Una connection reference list è disponibile sul sito: http://www.connectionstrings.com/
Le Properties della Sql Connection classa sono:
ConnectionString Connection string al database
ConnectionTimeout Timeout in secondi della connessione
Database Nome del database
DataSource Nome del Server
PacketSize Dimensione dei packets usati per comunicare con il Server
ServerVersion Version of SQL
State Stato della connessione
WorkstationId Identificatore NetBIOS della machine che ospita il Web form
I Metodi della Sql Connection classa sono:
BeginTransaction() Pone la connessione in una transazione
ChangeDatabase() Consente di associare ad una connessione un differente database
Close() Chiude la connessione
CreateCommand() Ritorna un nuovo command object
Open() Apre una connessione al database
Connection String
Il codice che segue è un esempio di connection string per il database SqlEspress 2005
SqlConnection conn = new SqlConnection();
conn.ConnectionString = "Data Source=.\SQLExpress;Integrated security=True;
User Instance=True;AttachDBFilename=|DataDirectory|Idea05.mdf”;
Il significato dei diversi parametri è il seguente:
-
Data Source è il machine name del computer su cui è running sql server
-
Integrated security indica che occorre usare le attuali credenziali degli utenti di windows (username e password) per accedere a sql server. I possibili valori sono true, false e sspi (indica connessione sicura).
-
User Instance, durante la connessione crea una nuova local SQL Server Express instance. Funziona solo quando si usa l’autenticazione di Windows. Lo scopo è di poter creare una full rights SQL Server instance per un utente con limitati diritti amministrativi sul computer.
-
AttachDBFilename, Path completo del nome del principale file del database
Connection Timeout
E’ una property read-only che contiene il timeout in secondi della connessione. Il valore di default è 30 sec. Per modificare questo parametro occorre indicare il valore nella connection string.
SqlConnection conn = new SqlConnection(
ConnString
);
msg.Text = conn.ConnectionTimeout;
Database
E’ una property read-only che contiene il nome del database. Per cambiare il valore occorre usare
il metodo ChangeDatabase() oppure modificare la connection string.
SqlConnection conn = new SqlConnection(
ConnString
);
msg.Text = conn.Database;
State
La property State consente di ottenere lo stato della connessione.
Sono possibili i seguenti valori:
Broken, Closed, Connecting, Executing, Fetching, and Open. Questi valori sono definite nel namespace System.Data.ConnectionState
SqlConnection conn = new SqlConnection(
ConnString
);
msg.Text = conn.State.ToString();
Transaction
Consente di eseguire diverse istruzioni SQL in modo consistente. Ad esempio, a volte occorre aggiornare diverse tabelle in un database (con Insert, update, ecc.) in modo consistente, nel senso che se si verifica un errore occorre annullare tutte le operazioni.
SqlConnection conn = new SqlConnection(
ConnString
);
Conn.Open();
SqlTransaction tx = conn.BeginTransaction();
// Esegue le diverse operazioni …
tx.Commit();
conn.Close();
ChangeDatabase
Consente di cambiare database senza dover creare una nuova connessione.
SqlConnection conn = new SqlConnection(
ConnString
);
conn.Open();
conn.ChangeDatabase("dbNew");
conn.Close()
CreateCommand
Ritorna una nuova instanza di un oggetto SqlCommand
SqlConnection conn = new SqlConnection(
ConnString
);
conn.Open();
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "DELETE FROM Prodotti";
Tag: adonet
Antonio Sammartino |
0 Commenti 
|

Discussioni |

Integrazioni

05/01/2009 9.34.36 | Social Bookmark
Comunicare con un database significa indicare le operazioni che si desiderano fare, mediante la classe SqlCommand. Questa classe viene usata per eseguire operazioni su un database o per ottenere informazioni. In altri termini, si utilizza un Object Command per inviare istruzioni SQL alla base di dati. Un oggetto comando utilizza l'oggetto connessione, per conoscere con quale database comunicare.
È possibile utilizzare SqlCommand, per eseguire un comando direttamente oppure mediante un riferimento ad un oggetto SqlDataAdapter, in cui sono memorizzati una serie di comandi da eseguire su un insieme di dati.
Properties
CommandText Contiene il testo di un commando sql
CommandTimeout Timeout in secondi per la query
CommandType Specifica il tipo di commando da eseguire
Connection Specifica la connessione al database
Parameters Specifica i parametri della query
SQL Transaction Specifica un transaction object
Methods
Cancel() Annulla la query
CreateParameter() Ritorna un nuovo SQL parameter
ExecuteNonQuery() Esegue il commando indicato in CommandText, ma non ritorna dati
ExecuteReader() Esegue il commando e ritorna i dati in un oggetto DataReader
ExecuteScalar() Esegue il commando e ritorna un singolo valore
ExecuteXmlReader() Esegue il commando e ritorna i dati in un oggetto XMLDataReader
ResetCommandTimeout() Reset la proprietà CommandTimeout della query
CommandText
La property CommandText è una string che specifica la query da eseguire
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "SELECT * FROM Clienti";
SqlCommand.CommandTimeout
CommandTimeout
La property CommandTimeout specifica il timeout della query.
Il valore di default è di 30 sec.
SqlCommand cmd = new SqlCommand();
cmd.CommandTimeout = 50;
CommandType
La property CommandType specifica il tipo di query da eseguire. Il CommandType è definito nel namespace System.Data. Può essere StoreProcedure, TableDirect o Text.
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.StoreProcedure;
Connection
La property Connection contiene un valido SqlConnection object su cui bisogna eseguire la query.
SqlConnection conn = new SqlConnection(
ConnString
);
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
Parameters
La property Parameters contiene i nomi di un gruppo di parametri SQL che devono essere usati in una istruzione SQL oppure quando si invoca una Stored Procedure che richiede parametri di Input/Output.
Nell'esempio che segue dopo aver aperto una connessione al database, viene creato un comando per eseguire una stored procedure. Successivamente vendono creati i parametri di input, output ed infine viene eseguito il comando:
SqlConnection conn = new SqlConnection(
ConnString
);
conn.Open();
SqlCommand cmd = new SqlCommand("AddNewClient", conn);
cmd.CommandType = CommandType.StoredProcedure;
// ---------------------------------------------------------Configura I parametric di input
SqlParameter param = new SqlParameter();
param = cmd.Parameters.Add(new SqlParameter("@Name", SqlDbType.NVarChar, 20));
param.Direction = Parameter.Direction.Input;
param.Value = sName.Text;
// ---------------------------------------------------------Configura I parametric di output
param = cmd.Parameters.Add(new SqlParameter("@retval", SqlDbType.Int, 4));
param.Direction = ParameterDirection.Output;
cmd.ExecuteNonQuery();
Transaction
La property Transaction contiene l’eventuale oggetto transaction per l’attuale serie di comandi
- Il metodo BeginTransaction dell'oggetto Conn segna l'inizio della transazione
- Vengono Eseguiti i comandi
- Infine viene attivato il metodo Commit per completare la transazione o il metodo Rollback per annullare la transazione
SqlConnection conn = new SqlConnection(ConnString);
conn.Open();
SqlTransaction trans = conn.BeginTransaction(IsolationLevel.Serializable, "RemoveClients");
cmd = new SqlCommand("", conn);
cmd.Transaction = trans;
......
trans.Commit();
Cancel()
Il metodo Cancel() rimuove una query attiva.
SqlConnection conn = new SqlConnection(ConnString);
conn.Open();
SqlCommand cmd = new SqlCommand("SELECT * FROM Clienti", conn);
cmd.ExecuteNonQuery();
cmd.Cancel();
CreateParameter()
Il metodo CreateParameter() ritorna una nuova istanza di un SQL parameter.
SqlParameter param = cmd.CreateParameter();
param.ParameterName = "@CustomerID";
param.DbType = SqlDbType.NVarChar;
param.Size = 5;
param.Value = "123";
param.Direction = ParameterDirection.Input;
cmd.Parameters.Add(param);
ResetCommandTimeout()
Ripristina il valore di default (30 sec.) della proprietà CommandTimeout.
cmd.ResetCommandTimeout();
ExecuteNonQuery()
Il metodo ExecuteNonQuery() esegue il commando indicato ella proprietà Command Text. E’ un metodo ottimizzato per le query che non ritornano informazioni.
È possibile utilizzare il metodo ExecuteNonQuery per ottenere informazioni sulla struttura di un database, per creare oggetti del database (per esempio, tabelle), modificare i dati contenuti in un database mediante le istruzioni UPDATE, INSERT o DELETE. Il valore restituito da queste istruzioni indica il numero di righe interessate dal comando, mentre per tutte le altre istruzioni ritorna il valore -1.
SqlConnection conn = new SqlConnection(ConnString);
conn.Open();
SqlCommand cmd = new SqlCommand("DELETE FROM Autori
WHERE LastName='Samanton'", conn);
cmd.ExecuteNonQuery();
ExecuteReader()
Il metodo ExecuteReader() esegue il commando indicato nella property command text. Ritorna un oggetto SqlDataReader che è il risultato della query.
SqlConnection conn = new SqlConnection(ConnString);
conn.Open();
SqlCommand cmd = new SqlCommand("SELECT * FROM Customers", conn);
SqlDataReader reader = cmd.ExecuteReader();
ExecuteScalar()
ExecuteScalar è un efficiente metodo dell'oggetto Command che può essere usato quando una query deve ritornare un solo valore.
SqlConnection conn = new SqlConnection(ConnString);
conn.Open();
SqlCommand cmd = new SqlCommand("SELECT count(*) FROM Client", conn);
int32 NumOfClient = (int32)cmd.ExecuteScalar();
msg.Text = "Vi sono "+ NumOfClient.ToString()+" client nel database.";
Tag: sql
Antonio Sammartino |
0 Commenti 
|

Discussioni |

Integrazioni

05/01/2009 9.24.36 | Social Bookmark
Questa classe rappresenta un parametro di un oggetto SqlCommand. Viene usato per passare parametri alle Stored Procedure o a comandi.
DbType Contiene il data type del Sql Parameter
Direction Definisce il parametro di input o output
IsNullable Definisce quando un parametro può essere null (true o false)
Precision Contiene la precision del parametro
Scale Contiene la scala del parametro
Size Contiene il size del parametro
Value Contiene il valore del parametro
ParameterName Contiene il nome del parametro
Per settare le property usare le seguenti istruzioniSqlParameter param = new SqlParameter();
param.DbType = SqlDbType.NVarChar;
param.Direction = ParameterDirection.Input;
param.IsNullable = true;
Per usare l’oggetto SqlParameter occorre:
1. Costruire la stringa di comando con i parametri
2. Dichiarare un SqlParameter object e assegnarli i valori
3. Assegnare il SqlParameter object alla property del SqlCommando
Il primo step è costruire una command string che contiene i parametri formali, preceduti dal simbolo @, che saranno successivamente sostituiti con i valori effettivi quando sarà eseguito il SqlCommand.
SqlCommand cmd = new SqlCommand(
"SELECT * FROM Client WHERE NomeAzienda = @Nome", conn);
Il second step consiste nel dichiarare tutti parametric indicate nella stringa di comando
SqlParameter param = new SqlParameter();
param.ParameterName = "@Nome";
param.Value = "IdeaSoftware";
Il terzo step consiste nell’aggiungere il parametro all’oggetto command
cmd.Parameters.Add(param);
Un esempio di utilizzo della classe SqlParameter è il seguente:
publicvoid ReadWithParam( int inputId )
{
SqlDataReader dr = null;
string ConnString = ConfigurationManager.AppSettings["dbIDEA"];
SqlConnection conn = newSqlConnection(ConnString);
conn.Open();
//-------------------------------------------------------------------
SqlCommand cmd = newSqlCommand("SELECT * FROM tPost where Id = @Id", conn);
SqlParameter param = newSqlParameter(); // 2. Definizione parametri
param.ParameterName = "@Id";
param.Value = inputId;
cmd.Parameters.Add(param); // 3. Aggiunge I parametri al Commando
dr = cmd.ExecuteReader();
string s = "";
while(dr.Read()) {
s += Convert.ToString(dr["Titolo"]) + "<br />";
}
Titolo.Text = s;
if (dr != null)
dr.Close();
if (conn != null)
conn.Close();
}
Tag: sql
Antonio Sammartino |
0 Commenti 
|

Discussioni |

Integrazioni

13/01/2009 22.23.47 | Social Bookmark
Fornisce un metodo per la lettura di un flusso di righe in modo forward-only da un database SQL. Ciò significa che è possibile estrarre i dati dal flusso, solo in modo sequenziale, mentre se bisogna manipolare i dati nelle diverse righe occorre usare un DataSet.
Per creare un oggetto SqlDataReader, invece di utilizzare un costruttore, occorre attivare il metodo ExecuteReader dell'oggetto SqlCommand,.
Mentre l'oggetto SqlDataReader è in uso, l'oggetto SqlConnection associato è occupato a rendere disponibile l'oggetto SqlDataReader, non è possibile eseguire altre operazioni sull'oggetto SqlConnection fino a quando non viene chiamato il metodo Close dell'oggetto SqlDataReader.
Properties
FieldCount Contiene il numero di fields ottenuti dalla query
IsClosed vale True se il SqlDataReader object è chiuso
Item Contiene una collection di valori accessibili per nome o per numero ordinale
RecordsAffected Ritorna il numero di records influenzati da una executed query
Methods
Close() Chiude il SqlDataReader object
GetBoolean() Ritorna un valore di tipo Boolean (esiste un metodo per ogni tipo di dati)
IsDBNull() Ritorna True se il campo contiene Null
Read() Lettura del successive valore dal result set into memory
string
queryString =
"SELECT ID, Nome FROM dbo.Client;"
;
using
(SqlConnection Conn =
new
SqlConnection(
connString
))
{
SqlCommand cmd =
new
SqlCommand(queryString, conn);
Conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
while
(dr.Read()) {
int
val= Convert.ToInt32(dr[0]);
string
s= Convert.ToString(dr
["Nome"]);
}
dr.Close();
Conn.Close();
}
FieldCount
Ritorna il numero di fields nel current record
SqlConnection conn = new SqlConnection(
ConnString
);
conn.Open();
SqlCommand cmd = new SqlCommand("Select id, lastname, firstname from Client", conn);
SqlDataReader dr = cmd.ExecuteReader();
FieldCount = dr.FieldCount;
IsClosed
vale True se il SqlDataReader object è chiuso
sqlConnection conn = new SqlConnection(
ConnString
);
conn.Open();
SqlCommand cmd = new SqlCommand("Select id, lastname, firstname from Client", conn);
SqlDataReader dr = cmd.ExecuteReader();
If (reader.IsClosed != true) {
// Esegue le operazioni con il datareader
}
Item
La property Item property ritorna il valore di una colonna nel suo format native
SqlConnection conn = new SqlConnection(
ConnString
);
conn.Open();
SqlCommand cmd = new SqlCommand("Select id, lastname, firstname from Client", conn);
SqlDataReader dr = cmd.ExecuteReader();
string msg = "";
while(reader.Read()){
msg = msg + dr["employee_id"] + " " + dr["lastname"] +
", " + dr["firstname"] + "<br>";
}
dr.Close();
RecordsAffected
The RecordsAffected property contains the number of records affected by the query.
SqlConnection conn = new SqlConnection(
ConnString
);
conn.Open();
SqlCommand cmd = new SqlCommand("Select id, lastname, firstname from Client", conn);
SqlDataReader dr = cmd.ExecuteReader();
int RecordsAffected = dr.RecordsAffected;
Close()
Il metodo Close() consente di chiudere il SqlDataReader object.
SqlDataReader dr = cmd.ExecuteReader();
dr.Close();
GetBoolean(Int32 i)
Il metodo GetBoolean() ritorna il valore di una specificata colonna di Booleano.
SqlConnection conn = new SqlConnection(
ConnString
);
conn.Open();
SqlCommand cmd = new SqlCommand("Select fieldname, FROM Table", conn);
SqlDataReader dr = cmd.ExecuteReader();
dr.Read();
bool value = dr.GetBoolean(0);
dr.Close();
conn.Close();
IsDBNull()
Il metodo IsDBNull() ritorna True se la colonna specificata contiene null.
SqlConnection conn = new SqlConnection(
ConnString
);
conn.Open();
SqlCommand cmd = new SqlCommand("Select fieldname FROM Table", conn);
SqlDataReader reader = cmd.ExecuteReader();
while(reader.Read()){
if(reader.IsDBNull(0) != true)
value = reader.GetValue(0);
}
reader.Close();
conn.Close();
Read()
Il metodo Read() avanza il data reader al successive record. Ritorna True se vi sonono recods, diversamente ritorna False
SqlConnection conn = new SqlConnection(
ConnString
);
conn.Open();
SqlCommand cmd = new SqlCommand("Select fieldname from aTable", conn);
SqlDataReader dr = cmd.ExecuteReader();
string value;
while(dr.Read()) {
value = dr.GetValue(0);
}
dr.Close();
conn.Close();
Tag: sql
Antonio Sammartino |
0 Commenti 
|

Discussioni |

Integrazioni

13/01/2009 22.50.12 | Social Bookmark