Visual Basic.NET - Buscar registro en Dataset, modificarlo y guardarlo en SQL Server

 
Vista:

Buscar registro en Dataset, modificarlo y guardarlo en SQL Server

Publicado por Pedro (2 intervenciones) el 06/10/2014 12:04:20
Buenos días,

Estoy empezando a programar en Visual Net, hasta ahora lo hacía en Access, y me surge la siguiente duda:

Necesito buscar en un Dataset el registro de una tabla que cumpla un requisito (buscar por numero de factura) y una vez lo encuentre comprobar si el importe es mayor de cero y si lo es modificarlo a 100 y después guardar el registro en el Dataset (sin saber la clave de la tabla) y propagarlo a la tabla original de SQL Server, en Access sería algo así:
__________________________________________________________________________________________
Private Sub BusqFra(strFra As String)
Dim cn As New ADODB.Connection, rs As New ADODB.Recordset

rs.Open "SELECT * FROM tblRepartos WHERE NumFra='" & strFra & "';", cn, adOpenKeyset, adLockOptimistic, adCmdText

If rs.RecordCount > 0 Then
If rs!Importe > 0 Then
rs!Importe = 100
rs.Update
End If
End If
End Sub
___________________________________________________________________________________________

Lo hago de esta manera en Ado Net:

Imports System.Data.SqlClient

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
BusqFra("N456")
End Sub

Private Sub BusqFra(ByVal NumFra As String)
Dim oConexion As New SqlConnection()
oConexion.ConnectionString = "Data Source=Yo\SQLEXPRESS;Initial Catalog=Clientes;Integrated Security=True"

Dim oDS = New DataSet()
Dim oDA As New SqlDataAdapter("SELECT * FROM tblRepartos", oConexion)
oDA.Fill(oDS, "Repartos")

Dim oCB As SqlCommandBuilder = New SqlCommandBuilder(oDA)

Dim oDR() As DataRow
oDR = oDS.Tables("Repartos").Select("NumFra = '" & NumFra & "'")

For Each Rep As DataRow In oDR
If Rep("Importe") > 0 Then
Rep("Importe") = 100
End If
Next

oDA.Update(oDS, "Repartos")
End Sub
End Class

______________________________________________________________________________________

Y me da este error:

"La generación SQL dinámica para UpdateCommand no es compatible con SelectCommand, que no devuelve ninguna información sobre columnas clave."

Me podeis hechar una mano.

Gracias,

Pedro
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Buscar registro en Dataset, modificarlo y guardarlo en SQL Server

Publicado por omar (128 intervenciones) el 07/10/2014 19:20:08
1.- dim total filas as integer= ods.tables(0).rows.count


1
2
3
4
5
6
7
8
9
10
11
12
13
14
dim checadatoendataset as string=""
for i as integer=0 to total .1
 If ds3.Tables(0).Rows.Count > 0 Then
                        If IsDBNull(ods.Tables(0).Rows(0).Item(0)) Then
                        Else
                          checadatoendataset=ods.Tables(0).Rows(0).Item(0)
if checadatoendataset >0
''aqui actualiza el registro de esa fila
end if
                        End If
                    Else
 
                    End If
next

cualquier cosa enviame un email
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar