Imports Microsoft.VisualBasic
Imports System.Data
Imports System.Data.SqlClient
Imports System.Configuration
Public Class DAO
Shared strConnection As String = ConfigurationManager.ConnectionStrings("Con").ConnectionString
Dim sqlCommand As New SqlCommand
Dim sqlConnection As New SqlConnection
Dim sqlDataAdapter As New SqlDataAdapter
Public Function InsertEmployee(ByVal objEmployee As Entities.Employee) As Entities.Employee
Dim EmployeeId As Integer
sqlConnection = New SqlConnection(strConnection)
sqlConnection.Open()
sqlCommand.Connection = sqlConnection
sqlCommand.CommandType = CommandType.StoredProcedure
sqlCommand.CommandText = "dbo.Employee_Info_INS"
Try
If objEmployee IsNot Nothing Then
sqlCommand.Parameters.AddWithValue("@Employee_Name", objEmployee.EmployeeName)
sqlCommand.Parameters.AddWithValue("@Employee_Age", objEmployee.EmployeeAge)
sqlCommand.Parameters.AddWithValue("@Employee_Salary", objEmployee.EmployeeSalary)
sqlCommand.Parameters.AddWithValue("@Employee_Dept", objEmployee.EmployeeDept)
Dim sqlparameter As SqlParameter = sqlCommand.Parameters.AddWithValue("@Employee_Id", objEmployee.EmployeeId)
sqlparameter.Direction = ParameterDirection.Output
sqlCommand.ExecuteNonQuery()
Integer.TryParse(sqlparameter.Value, EmployeeId)
objEmployee.EmployeeId = EmployeeId
End If
Catch ex As Exception
Throw ex
Finally
sqlConnection.Close()
End Try
Return objEmployee
End Function
Public Sub DeleteEmployee(ByVal EmployeeId As Integer)
sqlConnection = New SqlConnection(strConnection)
sqlConnection.Open()
sqlCommand.Connection = sqlConnection
sqlCommand.CommandType = CommandType.StoredProcedure
sqlCommand.CommandText = "dbo.Employee_Info_DEL"
Try
sqlCommand.Parameters.AddWithValue("@Employee_Id", EmployeeId)
sqlCommand.ExecuteNonQuery()
Catch ex As Exception
Throw ex
Finally
sqlConnection.Close()
End Try
End Sub
Public Function GetEmployee() As List(Of Entities.Employee)
Dim objEmployeeList As List(Of Entities.Employee) = Nothing
Dim objEmployee As Entities.Employee = Nothing
Dim dsEmployee As New DataSet
sqlConnection = New SqlConnection(strConnection)
sqlConnection.Open()
sqlCommand.Connection = sqlConnection
sqlCommand.CommandType = CommandType.StoredProcedure
sqlCommand.CommandText = "dbo.Employee_Info_SEL"
dsEmployee.Tables.Clear()
Try
sqlDataAdapter.SelectCommand = sqlCommand
sqlDataAdapter.Fill(dsEmployee)
If dsEmployee IsNot Nothing AndAlso dsEmployee.Tables(0).Rows.Count > 0 Then
objEmployeeList = New List(Of Entities.Employee)
objEmployee = New Entities.Employee
With dsEmployee.Tables(0).Rows(0)
For Each row As DataRow In dsEmployee.Tables(0).Rows
objEmployee = New Entities.Employee
objEmployee.EmployeeId = row("Employee_Id")
objEmployee.EmployeeName = row("Employee_Name")
objEmployee.EmployeeAge = row("Employee_Age")
objEmployee.EmployeeSalary = row("Employee_Salary")
objEmployee.EmployeeDept = row("Employee_Dept")
objEmployeeList.Add(objEmployee)
Next
objEmployee.EmployeeId = .Item("Employee_Id")
End With
End If
Catch ex As Exception
Throw ex
Finally
sqlConnection.Close()
End Try
Return objEmployeeList
End Function
Public Function UpdateEmployee(ByVal objEmployee As Entities.Employee) As Entities.Employee
sqlConnection = New SqlConnection(strConnection)
sqlConnection.Open()
sqlCommand.Connection = sqlConnection
sqlCommand.CommandType = CommandType.StoredProcedure
sqlCommand.CommandText = "dbo.Employee_Info_UPD"
Try
If objEmployee IsNot Nothing Then
sqlCommand.Parameters.AddWithValue("@Employee_Name", objEmployee.EmployeeName)
sqlCommand.Parameters.AddWithValue("@Employee_Age", objEmployee.EmployeeAge)
sqlCommand.Parameters.AddWithValue("@Employee_Salary", objEmployee.EmployeeSalary)
sqlCommand.Parameters.AddWithValue("@Employee_Dept", objEmployee.EmployeeDept)
sqlCommand.Parameters.AddWithValue("@Employee_Id", objEmployee.EmployeeId)
sqlCommand.ExecuteNonQuery()
End If
Catch ex As Exception
Throw ex
Finally
sqlConnection.Close()
End Try
Return objEmployee
End Function
End Class
Imports Microsoft.VisualBasic
Public Class Entities
Public Class Employee
Private strName As String
Private intAge As Integer
Private decSalary As Decimal
Private strDept As String
Private intEmployeeId As Integer
Public Property EmployeeName() As String
Get
Return strName
End Get
Set(ByVal value As String)
strName = value
End Set
End Property
Public Property EmployeeAge() As Integer
Get
Return intAge
End Get
Set(ByVal value As Integer)
intAge = value
End Set
End Property
Public Property EmployeeSalary() As Decimal
Get
Return decSalary
End Get
Set(ByVal value As Decimal)
decSalary = value
End Set
End Property
Public Property EmployeeDept() As String
Get
Return strDept
End Get
Set(ByVal value As String)
strDept = value
End Set
End Property
Public Property EmployeeId() As Integer
Get
Return intEmployeeId
End Get
Set(ByVal value As Integer)
intEmployeeId = value
End Set
End Property
End Class
Public Class Dept
End Class
End Class
Imports Microsoft.VisualBasic
Public Class Impl
Public Function InsertEmployee(ByVal objEmployee As Entities.Employee) As Entities.Employee
Dim objDAO As New DAO
Return objDAO.InsertEmployee(objEmployee)
End Function
Public Function GetEmployee() As List(Of Entities.Employee)
Dim objDAO As New DAO
Return objDAO.GetEmployee()
End Function
Public Sub DeleteEmployee(ByVal EmployeeId As Integer)
Dim objDAO As New DAO
objDAO.DeleteEmployee(EmployeeId)
End Sub
Public Function UpdateEmployee(ByVal objEmployee As Entities.Employee) As Entities.Employee
Dim objDAO As New DAO
Return objDAO.UpdateEmployee(objEmployee)
End Function
End Class
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html
xmlns
=
"http://www.w3.org/1999/xhtml"
>
<
head
runat
=
"server"
>
<
title
></
title
>
<
link
href
=
"App_Themes/Employee.css"
rel
=
"stylesheet"
type
=
"text/css"
/>
</
head
>
<
body
>
<
form
id
=
"form1"
runat
=
"server"
>
<
div
class
=
"main-content"
>
<
telerik:RadScriptManager
ID
=
"RadScriptManager1"
runat
=
"server"
>
</
telerik:RadScriptManager
>
<
div
class
=
"employeediv"
>
<
div
class
=
"employeesdiv"
>
<
asp:Label
ID
=
"lblEmployeeName"
CssClass
=
"employeelbl"
Text
=
"Employee Name"
runat
=
"server"
></
asp:Label
>
<
telerik:RadTextBox
ID
=
"rtxtEmployeeName"
CssClass
=
"employeertxt"
runat
=
"server"
>
</
telerik:RadTextBox
>
</
div
>
<
div
class
=
"employeesdiv"
>
<
asp:Label
ID
=
"lblEmployeeAge"
CssClass
=
"employeelbl"
Text
=
"Employee Age"
runat
=
"server"
></
asp:Label
>
<
telerik:RadTextBox
ID
=
"rtxtEmployeeAge"
CssClass
=
"employeertxt"
runat
=
"server"
>
</
telerik:RadTextBox
>
</
div
>
<
div
class
=
"employeesdiv"
>
<
asp:Label
ID
=
"lblEmployeeSalary"
CssClass
=
"employeelbl"
Text
=
"Employee Salary"
runat
=
"server"
></
asp:Label
>
<
telerik:RadTextBox
ID
=
"rtxtEmployeeSalary"
CssClass
=
"employeertxt"
runat
=
"server"
>
</
telerik:RadTextBox
>
</
div
>
<
div
class
=
"employeesdiv"
>
<
asp:Label
ID
=
"lblEmployeeDept"
CssClass
=
"employeelbl"
Text
=
"Employee Dept"
runat
=
"server"
></
asp:Label
>
<
telerik:RadTextBox
ID
=
"rtxtEmployeeDept"
CssClass
=
"employeertxt"
runat
=
"server"
>
</
telerik:RadTextBox
>
</
div
>
<
div
class
=
"employeesdiv"
>
<
telerik:RadButton
ID
=
"rbtnSave"
Text
=
"save"
runat
=
"server"
CssClass
=
"emloyeebtn"
>
</
telerik:RadButton
>
</
div
>
</
div
>
<
div
class
=
"employeegriddiv"
>
<
telerik:RadGrid
ID
=
"rgdEmployee"
runat
=
"server"
AutoGenerateColumns
=
"false"
Width
=
"908"
>
<
MasterTableView
EditMode
=
"InPlace"
>
<
Columns
>
<
telerik:GridTemplateColumn
>
<
EditItemTemplate
>
<
asp:LinkButton
ID
=
"lnkUpdate"
runat
=
"server"
Text
=
"Update"
CommandName
=
"Update"
Style
=
"float: left;"
>
</
asp:LinkButton
>
<
asp:LinkButton
ID
=
"lnkCancel"
runat
=
"server"
Text
=
"Cancel"
CommandName
=
"Cancel"
Style
=
"float: left; margin-left: 5px;"
>
</
asp:LinkButton
>
</
EditItemTemplate
>
<
ItemTemplate
>
<
asp:LinkButton
ID
=
"lnkEdit"
runat
=
"server"
Text
=
"Edit"
CommandName
=
"Edit"
>
</
asp:LinkButton
>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
HeaderText
=
"EmployeeName"
>
<
ItemTemplate
>
<
asp:Literal
ID
=
"ltlName"
runat
=
"server"
Text='<%#Eval("EmployeeName") %>'></
asp:Literal
>
</
ItemTemplate
>
<
EditItemTemplate
>
<
telerik:RadTextBox
ID
=
"rtxtName"
runat
=
"server"
Text='<%#Eval("EmployeeName") %>'
Width="170px">
</
telerik:RadTextBox
>
</
EditItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
HeaderText
=
"EmployeeAge"
>
<
ItemTemplate
>
<
asp:Literal
ID
=
"ltlAge"
runat
=
"server"
Text='<%#Eval("EmployeeAge") %>'></
asp:Literal
>
</
ItemTemplate
>
<
EditItemTemplate
>
<
telerik:RadTextBox
ID
=
"rtxtAge"
runat
=
"server"
Text='<%#Eval("EmployeeAge") %>'
Width="170px">
</
telerik:RadTextBox
>
</
EditItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
HeaderText
=
"EmployeeSalary"
>
<
ItemTemplate
>
<
asp:Literal
ID
=
"ltlSalary"
runat
=
"server"
Text='<%#Eval("EmployeeSalary") %>'></
asp:Literal
>
</
ItemTemplate
>
<
EditItemTemplate
>
<
telerik:RadTextBox
ID
=
"rtxtSalary"
runat
=
"server"
Text='<%#Eval("EmployeeSalary") %>'
Width="170px">
</
telerik:RadTextBox
>
</
EditItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
HeaderText
=
"EmployeeName"
>
<
ItemTemplate
>
<
asp:Literal
ID
=
"ltlDept"
runat
=
"server"
Text='<%#Eval("EmployeeDept") %>'></
asp:Literal
>
</
ItemTemplate
>
<
EditItemTemplate
>
<
telerik:RadTextBox
ID
=
"rtxtDept"
runat
=
"server"
Text='<%#Eval("EmployeeDept") %>'
Width="170px">
</
telerik:RadTextBox
>
</
EditItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
>
<
EditItemTemplate
>
<
asp:HiddenField
ID
=
"hidEmployeeId"
Value=<%#Eval("EmployeeId")%> runat="server" />
</
EditItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
>
<
EditItemTemplate
>
<
asp:LinkButton
ID
=
"lnkDelete"
runat
=
"server"
Text
=
"delete"
CommandName
=
"Delete"
> </
asp:LinkButton
>
</
EditItemTemplate
>
</
telerik:GridTemplateColumn
>
</
Columns
>
</
MasterTableView
>
</
telerik:RadGrid
>
</
div
>
<
asp:HiddenField
ID
=
"hdEmployeeId"
runat
=
"server"
/>
</
div
>
</
form
>
</
body
>
</
html
>
Imports Telerik.Web.UI
Partial Class _Default
Inherits System.Web.UI.Page
Dim objDAO As New DAO
Dim objimpl As New Impl
#Region "Methods"
Private Sub ShowJavaScript(ByVal str As String)
Dim page As Page = TryCast(HttpContext.Current.Handler, Page)
ScriptManager.RegisterStartupScript(page, page.GetType(), "msg", "alert('" & str & "');", True)
End Sub
Private Sub AddEmployeeDetails()
Dim objEmployee As New Entities.Employee
objEmployee.EmployeeName = rtxtEmployeeName.Text
objEmployee.EmployeeAge = rtxtEmployeeAge.Text
objEmployee.EmployeeSalary = rtxtEmployeeSalary.Text
objEmployee.EmployeeDept = rtxtEmployeeDept.Text
objEmployee.EmployeeId = Session("EmployeeId")
objimpl.InsertEmployee(objEmployee)
End Sub
Private Sub LoadEmployeeDetails()
Dim objEmployeeList As List(Of Entities.Employee)
Dim objEmployee As New Entities.Employee
objEmployeeList = objimpl.GetEmployee()
rgdEmployee.DataSource = objEmployeeList
End Sub
#End Region
#Region "Events"
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Try
LoadEmployeeDetails()
rgdEmployee.DataBind()
Catch ex As Exception
Throw ex
End Try
End Sub
Protected Sub rbtnSave_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles rbtnSave.Click
If rtxtEmployeeName.Text = "" AndAlso rtxtEmployeeAge.Text = "" AndAlso rtxtEmployeeSalary.Text = "" AndAlso rtxtEmployeeDept.Text = "" Then
ShowJavaScript("Enter The Employee Details in the textboxes")
Exit Sub
End If
AddEmployeeDetails()
LoadEmployeeDetails()
rgdEmployee.DataBind()
rtxtEmployeeName.Text = String.Empty
rtxtEmployeeAge.Text = String.Empty
rtxtEmployeeSalary.Text = String.Empty
rtxtEmployeeDept.Text = String.Empty
End Sub
Protected Sub rgdEmployee_ItemCommand(ByVal sender As Object, ByVal e As Telerik.Web.UI.GridCommandEventArgs) Handles rgdEmployee.ItemCommand
'If e.CommandArgument <> String.Empty Then
' If e.CommandName = "Delete" Then
' 'Session("Employee_Id") = Val(e.CommandArgument)
' objimpl.DeleteEmployee(Val(e.CommandArgument))
' LoadEmployeeDetails()
' End If
'End If
Dim objEmployee As New Entities.Employee
Dim rtxtName As RadTextBox
Dim rtxtAge As RadTextBox
Dim rtxtSalary As RadTextBox
Dim rtxtDept As RadTextBox
Dim hdEmployeeId As HiddenField
Dim EmployeeId As Integer
If e.CommandName = RadGrid.UpdateCommandName Then
rtxtName = e.Item.FindControl("rtxtName")
objEmployee.EmployeeName = rtxtName.Text
rtxtAge = e.Item.FindControl("rtxtAge")
objEmployee.EmployeeAge = rtxtAge.Text
rtxtSalary = e.Item.FindControl("rtxtSalary")
objEmployee.EmployeeSalary = rtxtSalary.Text
rtxtDept = e.Item.FindControl("rtxtDept")
objEmployee.EmployeeDept = rtxtDept.Text
hdEmployeeId = e.Item.FindControl("hidEmployeeId")
Integer.TryParse(hdEmployeeId.Value, objEmployee.EmployeeId)
objimpl.UpdateEmployee(objEmployee)
LoadEmployeeDetails()
ElseIf e.CommandName = RadGrid.DeleteCommandName Then
rgdEmployee.MasterTableView.ClearEditItems()
hdEmployeeId = e.Item.FindControl("hidEmployeeId")
Integer.TryParse(hdEmployeeId.Value, EmployeeId)
objimpl.DeleteEmployee(EmployeeId)
LoadEmployeeDetails()
End If
End Sub
#End Region
End Class
The issue is when i delete the second or third or last row the first row is being deleted.
When i update the values being changed are not changing the previous values are only displayed.
kindly go through the code and suggest me something.
I have also posted my services
Thanks in advance.