Imports Microsoft.VisualBasicImports System.DataImports System.Data.SqlClientImports System.ConfigurationPublic 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 FunctionEnd ClassImports Microsoft.VisualBasicPublic 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 ClassEnd ClassImports Microsoft.VisualBasicPublic 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 FunctionEnd 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.UIPartial 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 RegionEnd ClassThe 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.