Mi sono riadattato il tuo codice per un mio database Access di prova
Ho commentato il codice ma non credo che serva. Perchè, data la sua assoluta semplicità, se non capisci, è forse perchè non hai ancora le basi. Perciò ti consiglio senzaltro di STUDIARE
Ciao
codice:
<%--
Importo la spazio dei nomi opportuno
Altrimenti non funziona
--%>
<%@Import Namespace="System.Data.OleDb"%>
<%@Import Namespace="System.Data"%>
<%@ Page Language="vb" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<title>Query Parametrica</title>
<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
<script id="clientEventHandlersJS" language="javascript">
<!--
function window_onload() {
document.getElementById("tbId").focus();
document.getElementById("tbId").select();
}
//-->
</script>
</HEAD>
<body MS_POSITIONING="FlowLayout" language="javascript" onload="return window_onload()">
<form id="Form1" method="post" runat="server">
<asp:Label id="lbl1" style="Z-INDEX: 101; LEFT: 11px; POSITION: absolute; TOP: 16px" runat="server" Width="57px">Enter ID:</asp:Label>
<asp:TextBox id="tbId" style="Z-INDEX: 102; LEFT: 69px; POSITION: absolute; TOP: 13px" runat="server" Width="72px" OnTextChanged="GetData" AutoPostBack="True"></asp:TextBox>
<asp:DataGrid id="DataGrid1" style="Z-INDEX: 103; LEFT: 7px; POSITION: absolute; TOP: 39px" runat="server" Width="100%">
<HeaderStyle BackColor="ActiveBorder"></HeaderStyle>
</asp:DataGrid>
<asp:Label id="Label1" style="Z-INDEX: 104; LEFT: 12px; POSITION: absolute; TOP: 186px" runat="server" Width="418px"></asp:Label></form></FORM>
</body>
</HTML>
<script runat="server">
'definisco una connessione mediante una stringa di connessione
Private Conn As New OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0;" & "Data Source=C:\dati\test\test.mdb")
Sub GetData(ByVal obj As Object, ByVal e As EventArgs)
'definisco un Comando parametrizzato. Io utilizzo Access. Access non tiene conto del nome
'del parametro, ma del suo ordine (devono essere valorizzati da sinistra a destra)
Dim objCmd As OleDbCommand = New OleDbCommand("Select * from campi where [id] = ? ", Conn)
Dim objReader As OleDbDataReader 'definisco una variabile reader
Dim objParam As OleDbParameter 'definisco un parametro
'aggiungo alla collezione dei parametri dell'oggetto Command un parametro di tipo intero
'(il nome non importa (in access) ma la posizione
objParam = objCmd.Parameters.Add("ID", OleDbType.Integer)
'definisco la direzione (in access non serve e lo commento)
'objParam.Direction = ParameterDirection.Input
'imposto il value del parametro
objParam.Value = tbId.Text
'imposto il blocco try per gestire eventuali errori
Try
'apro la connessione
objCmd.Connection.Open()
'mi procuro il cursore Reader con l'apposito metodo ExecuteReader dell'oggetto Command
objReader = objCmd.ExecuteReader
'imposto la proprietà Sorgente dati della griglia col cursore Reader
DataGrid1.DataSource = objReader
'chiamo il metodo DataBind della griglia per recuperare i dati dal cursore e popolare la griglia
DataGrid1.DataBind()
Catch ex As OleDbException
'messaggio di errore nella label
Label1.Text = "Errore nel recupero dei dati"
Finally
'alla fine chiudo sempre e comunque il cursore Reader e la connessione
Try
objReader.Close()
objCmd.Connection.Close()
Catch ex As Exception
Label1.Text = "Errore nella chiusura della connessione"
End Try
End Try
End Sub
</script>