hola a todos los foreros!
tengo una error k me esta matando...desde hace varios dias no puedo arreglarlo...me dice "el proceso no puede obtener acceso al archivo SEQUIDO D LA DIRECCION DND ESTA EL ARCHIVO porque esta siendo utilizado en otro proceso" bueno entiendo xk es el error pero no puedo arreglarlo...
Les explico mas o menos kmo viene la mano...en mi bd tengo una campo dnd guard el nombre d una imagen (solo eso) en un formulario yo llamo para realizar varias operacione d modificaciones de la bd y en dnd tmb tengo esta imagen para poderla cambiar o eliminar...y cuando kiero recuperla imagen utilizo el IO.Path.GetFullPath("Fotos") para recuperarla desde la carpeta "Fotos" y la muestro en un picture...el problema es cuand kiero cambiar d imagen y guardarla con el mismo nombre d la anterior...me salta el error...
les dejo el codigo para k le hechen un vistazo..
Public Sub CargarProducto()
Try
oDataAdapterP = New SqlDataAdapter("SELECT Productos.* FROM Productos " & _
" WHERE Id_Categoria = " & iCategoria, CnSql)
'creo commandbuilder
Dim oComBuilder As New SqlCommandBuilder(oDataAdapterP)
'creo el dataset
oDataSetP = New DataSet
'abro la conexion
CnSql.Open()
'cargo el dataset
oDataAdapterP.Fill(oDataSetP, "Productos")
CnSql.Close()
Dim oDataRowP As DataRow
PictureBox2.Image = Nothing 'limpio el picturebox
If oDataSetP.Tables("Productos").Rows.Count > 0 Then
oDataRowP = oDataSetP.Tables("Productos").Rows(iPosicionFilaActualP)
txtProducto.Text = CStr(oDataRowP("NombreProducto"))
txtPrecio.Text = CStr(oDataRowP("Precio"))
iProducto = CInt(oDataRowP("id_Producto")) 'variable para modificar mas tarde
'pregunto si exite una foto
If Not oDataRowP("Foto") Is DBNull.Value Then
MostrarImagenPict(Me.PictureBox2, CInt(oDataRowP("Foto"))) 'carga la foto en li picture
End If
Else
txtProducto.Text = ""
txtPrecio.Text = ""
End If
Catch ex As Exception
MsgBox(ex.Message.ToString, MsgBoxStyle.Critical, "SISTEMA MACHADO")
End Try
End Sub
Private Sub btnAceptar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAceptar.Click
'este procedimiento el k acepta los cambio...
Try
Dim oDataRow As DataRow
oDataRow = Me.oDataSetC.Tables("Categorias").Rows(Me.iPosicionFilaActualC)
oDataRow("NombreCategoria") = Trim(txtCategoria.Text)
Me.oDataAdapterC.Update(Me.oDataSetC, "Categorias")
If txtProducto.Enabled = True Then 'pregutno si hay producto en la categoria
Dim oDataRowP As DataRow
oDataRowP = oDataSetP.Tables("Productos").Rows(iPosicionFilaActualP)
oDataRowP("NombreProducto") = Trim(txtProducto.Text
If Me.PictureBox2.Image IsNot Nothing Then 'pregunto si tengo una imagen
oDataRowP("Foto") = iProducto
End If
oDataAdapterP.Update(oDataSetP, "Productos")
'aka trate d liberar los recursos pero no pasa nada
oDataSetP = Nothing
oDataSetC = Nothing
oDataAdapterC = Nothing
oDataAdapterP = Nothing
oDataRowP.Delete()
If Me.PictureBox2.Image IsNot Nothing Then
File.
Delete(Path.
GetFullPath("Fotos") & "" & iProducto
)'aka me da el error Else
File.
Delete(Path.
GetFullPath("Fotos") & "" & iProducto
)'aka tmb! End If
End If
Catch ex As Exception
MsgBox(ex.Message.ToString, MsgBoxstyle.Critical, "SISTEMA MACHADO")
End Try
End Sub
trate de liberar los recursos pero no pasa nada...va no se si ese es la solucion..espero k me puedan ayudar...xk me hizo doler la cabeza je...saludos...espero averme explicado...desde ya gracias...ale