UPDATE ITEN LINQ

MAXCIM 27/11/2015 17:36:33
#454514
olá amigos,

tenho uma classe parcelas , estou usando LINQ, como faço um update em itens do LINQ?

eu gostaria de localizar o item dentro da classe e alterar seus valores e salvar a classe.


os itens são .ID .Valor . DT_Venc

desde já agradeço
KERPLUNK 27/11/2015 17:53:57
#454515
Resposta escolhida
Algo como:

var query =
from itens in db.Itens
select ord;
foreach (Itens ite in query)
{
ite.ID = 999;
ite.Valor = 100;
ite.DT_Venc = DateTime.Now;.
}

db.SubmitChanges();
MAXCIM 27/11/2015 18:08:47
#454517
kerplunk, obrigado pela atenção,

SubmitChanges(); não aparece como propriedade da classe.

tem outro modo?

KERPLUNK 27/11/2015 18:14:20
#454518
Caramba... deveria aparecer. [Ô]db[Ô] se refere ao seu contexto de dados, o mesmo que você faz as seleções. Está usando o EF, certo?
MAXCIM 27/11/2015 18:19:58
#454519
não estou usando EF, apenas uma classe com List(OF...
KERPLUNK 27/11/2015 18:21:50
#454520
Mostre o código das suas classes.
MAXCIM 27/11/2015 18:28:18
#454521
Public Class Class_List_Faturamento
Public Property ID As Integer
Public Property DT_Venc As Date
Public Property Vlr_Parc As Decimal
End Class

Public _ilist_Faturamento As New List(Of Class_List_Faturamento)

For I = 0 To 10
Dim FAT As New Class_List_Faturamento
FAT.ID = I + 1
FAT.Vlr_Parc = FormatNumber(Parcela, 2)
FAT.dt_venc = now.addmonth(i)

_ilist_Faturamento.Add(FAT)
Next I

Dim item = _ilist_Faturamento.FirstOrDefault(Function(p) p.ID = 1)
If Not item Is Nothing Then
item.Vlr_Parc = 200.00 [ô] novo valor

... aqui entra codigo para update
endif
KERPLUNK 27/11/2015 18:38:52
#454522
Certo, entendi.

Bom, tem várias alternativas. A mais simples, seria criar um método em [Ô]Class_List_Faturamento[Ô], que faria a gravação, então você simplesmente chamaria o método onde você comentou. O método deve conter toda a parte de conexão com o banco de dados, formação do comando, parametrização e gravação em si.
Algo assim:

Public Sub Gravar()
Using cn As New SqlConnection([Ô]Sua string de conexão aqui[Ô])
cn.Open()
Using cmd As New SqlCommand([Ô]Insert into tabelaX (Campo1, campo2) Values (@campo1, @campo2)[Ô])
cmd.Parameters.AddWithValue([Ô]campo1[Ô], Me.campo1)
cmd.Parameters.AddWithValue([Ô]campo2[Ô], Me.campo2)
Try
cmd.ExecuteNonQuery()
Catch generatedExceptionName As Exception

Throw
End Try
End Using
End Using
End Sub

JABA 27/11/2015 18:42:24
#454523
Dim db As New Northwnd([Ô]…\Northwnd.mdf[Ô])

Dim cust As Customer = _
(From c In db.Customers _
Where c.CustomerID = [Ô]ALFKI[Ô] _
Select c) _
.First()

[ô] Change the name of the contact.
cust.ContactName = [Ô]New Contact[Ô]

[ô] Create and add a new Order to Orders collection.
Dim ord As New Order With {.OrderDate = DateTime.Now}
cust.Orders.Add(ord)

[ô] Delete an existing Order.
Dim ord0 As Order = cust.Orders(0)

[ô] Removing it from the table also removes it from
[ô] the Customer’s list.
db.Orders.DeleteOnSubmit(ord0)

[ô] Ask the DataContext to save all the changes.
db.SubmitChanges()


https://msdn.microsoft.com/en-us/library/bb386931(v=vs.110).aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1
MAXCIM 27/11/2015 18:44:14
#454524
oi kerplunk, mais uma vez obrigado pela atenção.

essa operação não envolve banco de dados, devo editar e fazer update na própria classe _ilist_Faturamento
KERPLUNK 27/11/2015 18:57:13
#454525
Veja se entende a idéia:

Dim listaNotas As New List(Of note)()
Dim nota As note = listaNotas.FirstOrDefault(Function(x) x.from = [Ô]999[Ô])
nota.from = [Ô]xxx[Ô]

Dim i = listaNotas.FindIndex(Function(x) x.from = [Ô]999[Ô])
listaNotas(i) = nota
Página 1 de 2 [15 registro(s)]
Tópico encerrado , respostas não são mais permitidas