ASPnet_cw4_new

advertisement
Programowanie w ASP .NET.
Ćwiczenie praktyczne №4(2 godz.)
Cel pracy: Realizacja projektu aplikacji z dostępem do bazy danych przez INTERNET.
Zadanie 1 . Opracowanie aplikacji.
Opis zadania. Aplikacja ASP.NET realizuje dowolne polecenia SQL do bazy danych.
Rezultaty tych zapytań są odwzorowywane przez kontrolkę DataGrid.
Aplikacja składa się z jedną strony, która zawiera dwie kontrolki Panel. Każda z kontrolek
Panel zawiera inne kontrolki ASP które są wyświetlane lub są niewidoczne na tym panelu.
Jeden panel jest przeznaczony dla wpisania poleceń SQL, drugi dla formowania wyników
poleceń. Na rys.1 jest pokazany pierwszy panel.
Rys.1
Panel dla wpisywania poleceń SQL zawiera element TextBox dla wpisywania poleceń oraz
element Button dla przesyłania poleceń do bazy danych . Przy napisaniu polecenia
użytkownik musi wprowadzić słowa kluczowe Select oraz From, inaczej będzie sformowany
odpowiedni komunikat pro błąd ( rys.2). Obecność tych słów musi być sprawdzone za
dopomogą walidatorów RequiredFieldValidator oraz RegularExpressionValidator. Pierwszy
walidator kontroluje obecność informacji w elemencie TextBox, drugi kontroluje obecność
klauzul Select oraz From. Po naciśnięciu przez użytkownika przyciska „Realizuj Polecenie”
pierwszy panel staje niewidocznym oraz staje widocznym drugi panel z kontrolką DataGrid
(lub Repeater) zawierającej rezultaty polecenia do bazy danych (rys 3). Panel z rezultatami
odwzorowuje wszystkie pola zdefiniowane w poleceniu SQL. Polecenie SQL może być
komplikowanym, zawierać różne łączenia tabel.
Panel Projektu w VisualStudio jest pokazany na rys. 4. Okno właściwości walidatora dla
klauzuli Select jest pokazane na rys. 5. Na tym rysunku jest pokazane wyrażenie dla kontroli
obecności klauzuli SELECT wewnątrz polecenia SQL. Po naciśnięciu przyciska Nowe
Polecenie (rys.3) można przejść do pierwszego panelu, oraz drugi panel w tym przypadku
staje niewidocznym.
Rys.2
Rys. 3
Rys.4
Witamy na naszej stronie "Polecenia SQL"
Rys. 5
Kod klasy WebForm1 strony ASP jest pokazany na listingu 1.
Listing 1.
Public Class WebForm1
Inherits System.Web.UI.Page
#Region " Web Form Designer Generated Code "
'This call is required by the Web Form Designer.
<System.Diagnostics.DebuggerStepThrough()> Private Sub
InitializeComponent()
Me.DBConn = New System.Data.OleDb.OleDbConnection
Me.DSResults = New System.Data.DataSet
CType(Me.DSResults,
System.ComponentModel.ISupportInitialize).BeginInit()
'
'DBConn
'
Me.DBConn.ConnectionString = "Data
Source=""C:\aspnet_bazy_test\C4Birthday.mdb"";Provider=""Microsoft.Jet.OLED
B.4." & _
"0"";"
'
'DSResults
'
Me.DSResults.DataSetName = "NewDataSet"
Me.DSResults.Locale = New System.Globalization.CultureInfo("pl")
CType(Me.DSResults,
System.ComponentModel.ISupportInitialize).EndInit()
End Sub
Protected WithEvents pnlQuery As System.Web.UI.WebControls.Panel
Protected WithEvents lblTitle As System.Web.UI.WebControls.Label
Protected WithEvents txtQuery As System.Web.UI.WebControls.TextBox
Protected WithEvents rfvQuery As
System.Web.UI.WebControls.RequiredFieldValidator
Protected WithEvents revSelect As
System.Web.UI.WebControls.RegularExpressionValidator
Protected WithEvents revFrom As
System.Web.UI.WebControls.RegularExpressionValidator
Protected WithEvents DBConn As System.Data.OleDb.OleDbConnection
Protected WithEvents DSResults As System.Data.DataSet
Protected WithEvents OleDbSelectCommand1 As
System.Data.OleDb.OleDbCommand
Protected WithEvents OleDbInsertCommand1 As
System.Data.OleDb.OleDbCommand
Protected WithEvents OleDbUpdateCommand1 As
System.Data.OleDb.OleDbCommand
Protected WithEvents OleDbDeleteCommand1 As
System.Data.OleDb.OleDbCommand
Protected WithEvents DBCommand As System.Data.OleDb.OleDbDataAdapter
Protected WithEvents butQuery As System.Web.UI.WebControls.Button
Protected WithEvents butResults As System.Web.UI.WebControls.Button
Protected WithEvents dgQueryResult As
System.Web.UI.WebControls.DataGrid
Protected WithEvents pnlResults As System.Web.UI.WebControls.Panel
'NOTE: The following placeholder declaration is required by the Web
Form Designer.
'Do not delete or move it.
Private designerPlaceholderDeclaration As System.Object
Private Sub Page_Init(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Init
InitializeComponent()
'Ten kod trzeba wpisac wreczna
Me.pnlQuery.Controls.Add(Me.txtQuery)
Me.pnlQuery.Controls.Add(Me.butQuery)
Me.pnlResults.Controls.Add(Me.dgQueryResult)
Me.pnlResults.Controls.Add(Me.butResults)
End Sub
#End Region
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
'Put user code to initialize the page here
If Not IsPostBack Then
'Ten kod trzeba wpisac wreczna
pnlQuery.Visible = True
pnlResults.Visible = False
End If
End Sub
Private Sub butQuery_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles butQuery.Click
'Ten kod trzeba wpisac wreczna
Me.DBCommand = New
System.Data.OleDb.OleDbDataAdapter(txtQuery.Text, Me.DBConn)
Me.DBCommand.Fill(Me.DSResults, "TabelaDS")
Me.dgQueryResult.DataSource =
Me.DSResults.Tables("TabelaDS").DefaultView
Me.dgQueryResult.DataBind()
Me.pnlQuery.Visible = False
Me.pnlResults.Visible = True
End Sub
Private Sub butResults_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles butResults.Click
'Ten kod trzeba wpisac wreczna
pnlQuery.Visible = True
pnlResults.Visible = False
End Sub
End Class
Zadanie 2. Opracowanie kodu aplikacji dla połączenia z bazą danych MS SQL Server.
Opis zadania. Dla połączenia z bazą danych Pubs lub Northwind MS SQL Server trzeba
wykorzystać obiekty klasy:
 SQLConnection zamiast klasy OLEDBConnection,
 SQLCommand zamiast klasy OLEDBComand,
 SQLDataAdapter zamiast klasy OLEDBDataAdapter.
Klasa strony musi zawierać przestrzeń klas „System.Data” oraz „System.Data.SqlClient”.
Przykład stworzenia obiektu DBConn klasy SQLConnnection dla połączenia z bazą danych
„Pubs”( Serwer SQL jest na tym samym komputerze z serwerem WWW) :
DBConn = New SqlConnection("server=.;uid=sa;pwd=;database=Pubs")
Literatura.
1. Chris Payne. ASP.NET dla każdego, Helion, 2002
2. Paweł Chłosta. ASP.NET i kolekcje C#, MIKOM, 2004-10-01
3. Scott Worley. ASP.NET Vademecum profesjonalisty, Helion, 2003
4. Jose Mojica. C# I ASP.NET, Helion, 2004
5. Bill Evjen, Scott Hanselman, Devin Rader. ASP.NET 3.5 z wykorzystaniem C# I VB.
Helion 2010
6. Jesse Liberty, Dan Hurwitz. ASP.NET . Programowanie, Helion, 2007.
7. Jesse Liberty. C#. Programowanie, Helion, 2006.
8. Kevin Hoffman. Visual C# 2005, Helion, 2007.
Download