1

我在 VarEmpID 变量中获得了正确的员工 ID。当我点击删除它给我

无法将“System.Data.Linq.DataQuery`1[my name space]”类型的对象转换为“namespace”类型。

在此处输入代码

    Protected Sub radGrid1_DeleteCommand(ByVal source As Object, ByVal e As  GridCommandEventArgs) Handles radGrid1.DeleteCommand

          Dim VarEmpId As String = (CType(e.Item, GridDataItem)).OwnerTableView.DataKeyValues(e.Item.ItemIndex)("EmpId").ToString()

          Using dc1 As New EmployeesDataClassesDataContext()

            Dim EmployeeEntry = (From p In dc1.Employees
            Where (p.EmpId = VarEmpId)
                                Select p)

            dc1.Employees.DeleteOnSubmit(EmployeeEntry)
            dc1.SubmitChanges()

            Dim queryResults = (From queryItem In EmployeeEntry Select queryItem).ToList()
            If queryResults.Any Then
                radGrid1.DataSource = queryResults
                radGrid1.DataBind()
            End If

        End Using



    End Sub
4

2 回答 2

1
dc1.Employees.DeleteOnSubmit(EmployeeEntry) 

该方法需要一个 Employee 实例。相反,您传入了一个员工查询。

Dim EmployeeEntry = ( query )

这是一个查询,而不是一个条目。考虑调用 Enumerable.First 以获取查询的第一个结果,然后将其删除。

于 2012-07-26T18:12:21.580 回答
0

修改后添加 Dim EmployeeEntry = (From p In dc1.Employees Where (p.EmpId = VarEmpId) Select p).singleorDefault() 之后注释掉查询结果部分并再次绑定数据它解决了我的问题。——微笑百合

于 2012-07-26T20:35:40.540 回答