Imports System
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.Control
Imports System.Data
Imports System.Data.OleDb
Public Class DefaultClass
Inherits System.Web.UI.Page
Protected WithEvents MyDataGrid As System.Web.UI.WebControls.DataGrid
Protected WithEvents Cliente_ID As System.Web.UI.WebControls.TextBox
Protected WithEvents NCPegasus As System.Web.UI.WebControls.TextBox
Protected WithEvents Cliente As System.Web.UI.WebControls.TextBox
Protected WithEvents Contatti As System.Web.UI.WebControls.TextBox
Protected WithEvents Email As System.Web.UI.WebControls.TextBox
Protected WithEvents Aggiungi As System.Web.UI.WebControls.Button
Protected WithEvents Message As HtmlContainerControl
Private MyConnection As OleDbConnection = _
New OleDbConnection(ConfigurationSettings.AppSettings( "DSN"))
Public Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Not (IsPostBack) Then
BindGrid()
End If
End Sub
Public Sub Add_Grid(ByVal obj As Object, ByVal E As EventArgs)
Dim DS As DataSet
Dim MyCommand As OleDbCommand
If NCPegasus.Text = "" Or Cliente.Text = "" Or Contatti.Text = "" Or Email.Text = "" Then
Message.InnerHtml = "ERROR: Null values not allowed for Author ID, Name or Phone"
Message.Style("color") = "red"
BindGrid()
End If
Dim InsertCmd As String = "INSERT INTO tblClienti ( NCPegasus, Cliente, Contatti, Email )VALUES ([@NCPegasus], [@Cliente], [@Contatti], [@Email]);"
MyCommand = New OleDbCommand(InsertCmd, MyConnection)
MyCommand.Parameters.Add(New OleDbParameter("@NCPegasus", OleDbType.Integer, 5))
MyCommand.Parameters("@NCPegasus").Value = Server.HtmlEncode(NCPegasus.Text)
MyCommand.Parameters.Add(New OleDbParameter("@Cliente", OleDbType.LongVarChar, 255))
MyCommand.Parameters("@Cliente").Value = Server.HtmlEncode(Cliente.Text)
MyCommand.Parameters.Add(New OleDbParameter("@Contatti", OleDbType.LongVarChar, 255))
MyCommand.Parameters("@Contatti").Value = Server.HtmlEncode(Contatti.Text)
MyCommand.Parameters.Add(New OleDbParameter("@Email", OleDbType.LongVarChar, 50))
MyCommand.Parameters("@Email").Value = Server.HtmlEncode(Email.Text)
MyCommand.Connection.Open()
Try
MyCommand.ExecuteNonQuery()
Message.InnerHtml = "
Record Added
" & InsertCmd.ToString()
Catch Exp As OleDbException
If Exp.ErrorCode = 2627 Then
Message.InnerHtml = "ERROR: A record already exists with the same primary key"
Else
Message.InnerHtml = "ERROR: Could not add record, please ensure the fields are correctly filled out"
End If
Message.Style("color") = "red"
End Try
MyCommand.Connection.Close()
BindGrid()
End Sub
Public Sub Edit_Grid(ByVal obj As Object, ByVal e As DataGridCommandEventArgs)
MyDataGrid.EditItemIndex = CInt(e.Item.ItemIndex)
BindGrid()
End Sub
Public Sub Cancel_Grid(ByVal obj As Object, ByVal e As DataGridCommandEventArgs)
MyDataGrid.EditItemIndex = -1
BindGrid()
End Sub
Public Sub Update_Grid(ByVal obj As Object, ByVal e As DataGridCommandEventArgs)
Dim DS As DataSet
Dim MyCommand As OleDbCommand
Dim UpdateCmd As String = "UPDATE tblClienti SET NCPegasus=[@NCPegasus], Cliente=[@Cliente], Contatti=[@Contatti], Email=[@Email] WHERE cliente_ID=[@cliente_ID];"
MyCommand = New OleDbCommand(UpdateCmd, MyConnection)
MyCommand.Parameters.Add(New OleDbParameter("@Cliente_ID", OleDbType.Numeric))
MyCommand.Parameters.Add(New OleDbParameter("@NCPegasus", OleDbType.Numeric))
MyCommand.Parameters.Add(New OleDbParameter("@Cliente", OleDbType.LongVarChar))
MyCommand.Parameters.Add(New OleDbParameter("@Contatti", OleDbType.LongVarChar))
MyCommand.Parameters.Add(New OleDbParameter("@Email", OleDbType.LongVarChar))
MyCommand.Parameters("@cliente_ID").Value = MyDataGrid.DataKeys(CInt(e.Item.ItemIndex))
Dim Cols As String() = {"@Cliente_ID", "@NCPegasus", "@Cliente", "@Contatti", "@Email"}
Dim NumCols As Integer = e.Item.Cells.Count
MyCommand.Parameters("@NCPegasus").Value = Server.HtmlEncode(e.Item.Cells(2).Text)
MyCommand.Parameters("@Cliente").Value = Server.HtmlEncode(e.Item.Cells(3).Text)
MyCommand.Parameters("@Contatti").Value = Server.HtmlEncode(e.Item.Cells(4).Text)
MyCommand.Parameters("@Email").Value = Server.HtmlEncode(e.Item.Cells(5).Text)
Dim I As Integer
For I = 2 To NumCols - 2
Dim CurrentTextBox As TextBox
CurrentTextBox = e.Item.Cells(I).Controls(0)
Dim ColValue As String = CurrentTextBox.Text
MyCommand.Parameters(Cols(I - 1)).Value = Server.HtmlEncode(ColValue)
Response.Write(MyCommand.Parameters(Cols(I - 1)).Value & "
" & Server.HtmlEncode(ColValue) & "
")
Next
MyCommand.Connection.Open()
Try
MyCommand.ExecuteNonQuery()
Message.InnerHtml = "
Record Updated
" & UpdateCmd.ToString()
MyDataGrid.EditItemIndex = -1
Catch Exp As OleDbException
If Exp.ErrorCode = 2627 Then
Message.InnerHtml = "ERROR: A record already exists with the same primary key"
Else
Message.InnerHtml = "ERROR: Could not add record, please ensure the fields are correctly filled out"
End If
Message.Style("color") = "red"
End Try
MyCommand.Connection.Close()
BindGrid()
End Sub
Public Sub Delete_Grid(ByVal Sender As Object, ByVal E As DataGridCommandEventArgs)
Dim MyCommand As OleDbCommand
Dim DeleteCmd As String = "DELETE * FROM tblClienti WHERE cliente_ID=[@cliente_ID];"
MyCommand = New OleDbCommand(DeleteCmd, MyConnection)
MyCommand.Parameters.Add(New OleDbParameter("@Cliente_ID", OleDbType.Numeric))
MyCommand.Parameters("@Cliente_ID").Value = MyDataGrid.DataKeys(CInt(E.Item.ItemIndex))
MyCommand.Connection.Open()
Try
MyCommand.ExecuteNonQuery()
Message.InnerHtml = "
Record Deleted
" & DeleteCmd
Catch Exc As OleDbException
Message.InnerHtml = "ERROR: Could not delete record"
Message.Style("color") = "red"
End Try
MyCommand.Connection.Close()
BindGrid()
End Sub
Public Sub ItemDataBound_Grid(ByVal Sender As Object, ByVal E As DataGridItemEventArgs)
If (E.Item.ItemType = ListItemType.EditItem) Then
Dim i As Integer
Try
For i = 2 To E.Item.Controls.Count - 1
If (E.Item.Cells(i).Controls(0).GetType().ToString = "System.Web.UI.WebControls.TextBox") Then
Dim tb As TextBox
tb = E.Item.Controls(i).Controls(0)
tb.Text = Server.HtmlDecode(tb.Text)
End If
Next
Catch
End Try
End If
End Sub
Public Sub BindGrid()
Dim DS As DataSet
Dim MyCommand As OleDbDataAdapter
MyCommand = New OleDbDataAdapter("select * from tblClienti", MyConnection)
DS = New DataSet()
MyCommand.Fill(DS, "tblClienti")
MyDataGrid.DataSource = DS.Tables("tblClienti").DefaultView
MyDataGrid.DataBind()
End Sub
End Class