This is a migrated thread and some comments may be shown as answers.

Update and Delete problem of radgrid

3 Answers 91 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Naveen kumar
Top achievements
Rank 1
Naveen kumar asked on 08 Feb 2012, 01:15 PM
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
Here i am placing my aspx and code page
<%@ 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">
<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.

3 Answers, 1 is accepted

Sort by
0
Naveen kumar
Top achievements
Rank 1
answered on 09 Feb 2012, 05:03 AM
Delete Problem solved there was a problem in the dao of getemployee.
still the update problem exists.
 
0
Accepted
Tsvetoslav
Telerik team
answered on 09 Feb 2012, 09:14 AM
Hello Naveen,

Do note the difference between Simple data-binding and Advanced data-binding. You need to use the latter.

Regards, Tsvetoslav
the Telerik team
Sharpen your .NET Ninja skills! Attend Q1 webinar week and get a chance to win a license! Book your seat now >>
0
Naveen kumar
Top achievements
Rank 1
answered on 09 Feb 2012, 09:37 AM
Thanks for the suggestion
Tags
Grid
Asked by
Naveen kumar
Top achievements
Rank 1
Answers by
Naveen kumar
Top achievements
Rank 1
Tsvetoslav
Telerik team
Share this question
or