################# JAVASCRIPT (on .aspx page) #################
function InsUpd_Person() {
// … set vars to form field vals
var first_name = document.getElementById("txtFirstName").value;
var person = new clientPerson(person_id, person, company_id, department_id, first_name, last_name, email);
// invoke PageMethods
var serializedPerson = Sys.Serialization.JavaScriptSerializer.serialize(person);
PageMethods.InsertUpdate_Person(serializedPerson, callBackUpdatePerson);
}
################# CODE BEHIND #################
<WebMethod()> _
<ScriptMethod()> _
Public Shared Function InsertUpdate_Person(ByVal jsonPerson As String) As String
Dim serializer As New JavaScriptSerializer()
Dim oPerson As Person = serializer.Deserialize(Of Person)(jsonPerson)
objPerson = New Person
objPerson.Person_ID = oPerson.Person_ID
objPerson.Company_ID = IIf(oPerson.Company_ID = "-1", 0, oPerson.Company_ID)
objPerson.Department_ID = IIf(oPerson.Department_ID = "-1", 0, oPerson.Department_ID)
objPerson.First_Name = ToNothing(oPerson.First_Name)
objPerson.Last_Name = ToNothing(oPerson.Last_Name)
objPerson.Email = ToNothing(oPerson.Email)
SiteProvider.Company.UpdatePerson(objPerson)
End Sub
################# CLASS #################
<Serializable()> _
Public Class Person
Public Sub New()
End Sub
Public Sub New(ByVal vPerson_ID As Integer, _
ByVal vRecCount As Integer, _
ByVal vCompany_ID As Integer, _
ByVal vDepartment_ID As Integer, _
ByVal vFirst_Name As String, _
ByVal vLast_Name As String, _
ByVal vEmail As String)
Me.Person_ID = vPerson_ID
Me.RecCount = vRecCount
Me.Company_ID = vCompany_ID
Me.Department_ID = vDepartment_ID
Me.First_Name = vFirst_Name
Me.Last_Name = vLast_Name
Me.Email = vEmail
End Sub
Private _Person_ID As Integer = Nothing
Public Property Person_ID() As Integer
Get
Return _Person_ID
End Get
Set(ByVal Value As Integer)
_Person_ID = Value
End Set
End Property
Private _Company_ID As Integer = Nothing
Public Property Company_ID() As Integer
Get
Return _Company_ID
End Get
Set(ByVal Value As Integer)
_Company_ID = Value
End Set
End Property
Private _Company As String = ""
Public Property Company() As String
Get
Return _Company
End Get
Set(ByVal Value As String)
_Company = Value
End Set
End Property
Private _Department_ID As Integer = Nothing
Public Property Department_ID() As Integer
Get
Return _Department_ID
End Get
Set(ByVal Value As Integer)
_Department_ID = Value
End Set
End Property
Private _Department As String = ""
Public Property Department() As String
Get
Return _Department
End Get
Set(ByVal Value As String)
_Department = Value
End Set
End Property
Private _First_Name As String = ""
Public Property First_Name() As String
Get
Return _First_Name
End Get
Set(ByVal Value As String)
_First_Name = Value
End Set
End Property
Private _Last_Name As String = ""
Public Property Last_Name() As String
Get
Return _Last_Name
End Get
Set(ByVal Value As String)
_Last_Name = Value
End Set
End Property
Private _Email As String = ""
Public Property Email() As String
Get
Return _Email
End Get
Set(ByVal Value As String)
_Email = Value
End Set
End Property
End Class
################# ABSTRACT PROVIDER CLASS #################
Public MustOverride Function InsertPerson(ByVal Person As Person) As Integer
################# SQL STORED PROCS ACCESS CLASS #################
Public Overloads Overrides Function InsertPerson(ByVal oPerson As Person) As Integer
Using cn As New SqlConnection(Me.ConnectionString)
Dim cmd As New SqlCommand("wsa_Person_i", cn)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.Add("@Company_ID", SqlDbType.Int).Value = oPerson.Company_ID
cmd.Parameters.Add("@Department_ID", SqlDbType.TinyInt).Value = oPerson.Department_ID
cmd.Parameters.Add("@First_Name", SqlDbType.VarChar).Value = oPerson.First_Name
cmd.Parameters.Add("@Last_Name", SqlDbType.VarChar).Value = oPerson.Last_Name
cmd.Parameters.Add("@Email", SqlDbType.VarChar).Value = oPerson.Email
cmd.Parameters.Add("@Person_ID", SqlDbType.Int).Direction = ParameterDirection.Output
cn.Open()
Dim ret As Integer = ExecuteNonQuery(cmd)
Return DirectCast(cmd.Parameters("@Person_ID").Value, Integer)
End Using
End Function
################# STORED PROCEDURE #################
CREATE PROCEDURE wsa_Person_i
(
@Company_ID int = Null,
@Department_ID tinyint = Null,
@First_Name varchar(50) = Null,
@Last_Name varchar(50) = Null,
@Email varchar(150) = Null,
@Person_ID int OUTPUT
)
AS
BEGIN TRAN
INSERT Person
(
Company_ID,
Department_ID,
First_Name,
Last_Name,
Email
)
VALUES
(
@Company_ID,
@Department_ID,
@First_Name,
@Last_Name,
@Email
)
IF @@error <> 0
BEGIN
ROLLBACK TRAN
RAISERROR ('An error occurred adding to Person',1,1)
RETURN
END
Set @Person_ID = CAST(SCOPE_IDENTITY() AS INT)
COMMIT TRAN
Return
Network and collaborate with thousands of CTOs, CISOs, and IT Pros rooting for you and your success.
”The time we save is the biggest benefit of E-E to our team. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange.
Our community of experts have been thoroughly vetted for their expertise and industry experience.