lunes, 23 de febrero de 2009

manejos de documentos xls y dataset

 

primero se crea un exelfile y un dataset

Dim ef As New ExcelFile
Dim dataSet As New DataSet
' se carga el xls
ef.LoadXls("FileName.xls")
’a ahora se exportan las hojas del xls
For Each ws In ef.Worksheets
Dim dataTable As DataTable
' dependiendo de el tipo de datos tienes que cambiar el tipo de datos
    dataTable.Columns.Add("FirstName", GetType(String))
    dataTable.Columns.Add("LastName", GetType(String))
' enviar los datos a un objeto datatable
    ws.ExtractToDataTable(dataTable, 10, ExtractDataOptions.StopAtFirstEmptyRow, ws.Rows(0), ws.Columns(0))
    dataTable.TableName = ws.Name
' Add DataTable to DataSet.
    [dataSet].Tables.Add(dataTable)
Next
' creando un nuevo xls
Dim ef2 As New ExcelFile
' exportar todas las tablas del dataset a un xls
For Each table In [dataSet].Tables
' Add new worksheet to the file.
Dim ws As ExcelWorksheet = ef2.Worksheets.Add(table.TableName)
' Change the value of the first cell in the DataTable.
    table.Rows(0)(0) = "This is new file!"

‘insertando los datos del datatable a la hoja partiendo de la celda a1


    ws.InsertDataTable(table, "A1", True)
Next
salvando a xls
ef2.SaveXls("DataSet.xls")

viernes, 9 de enero de 2009

visual estudio no abre las paginas web en el servidor virtual

bueno la solucion de eso cuando el explorador no abre las web del visual estudio en modo "play" run o ejecucion

es debido a que windows tiene un archivo en system32/drivers/etc/ llamado host

lo cual e sun simple archivo de texto (abralo con notepad). que ha sido cambiada la entrada o eliminada


:1 localhost esa hay programas que les agrega

::1 localhost esos 2 puntos saquele 1 y guardelo si no existe la entrada

creela

127.0.0.1 localhost
:1 localhost

agregela abajo de los #

ejemplo

# 38.25.63.10 x.acme.com
# x client host
127.0.0.1 localhost
:1 localhost

guarde y listo fijese que solo tenga un ":" en vez de 2.

miércoles, 29 de octubre de 2008

Como proteger descargas en asp.net 2.0

 

bueno asp.net tiene un metodo llamado response.transmitfile

 

lo cual uno envia el archivo atravez de un response. lo cual funciona para grandes descargas.

y no son redicionados  a una url donde esta el archivo

 

este seria el codigo.

 

aca el codigo
string file = Request.Params["file"];

if (!string.IsNullOrEmpty(file))
{
    file = Path.Combine(Server.MapPath("downloadsx"), Path.GetFileName(file));

    Response.Clear();

    Response.ContentType = "application/octect-stream";


    Response.AddHeader("Content–Disposition", "attachment; filename=foo.xyz");

    Response.TransmitFile(file);

    Response.End();
}

 

pd:una vez en windows 2003 se me cortaba el enviado archivo misteriosamente lo cual lo solucione bajando un parche.

/////////////////////////////////////////////////////////

 

 

lunes, 27 de octubre de 2008

Como encontrar on objeto y cambiarle su valor o propiedades dentro de un dbgrid o datalist dentro de una fila! con ctype.

 

Muchas veces necesitamos cambiar el valor por ejemplo de un cuadro de texto que esta inscrustado dentro de un datagrid dentro de una fila lo cual lo primero que tendriamos que hacer es buscarlo por su nombre usando findcontrol y ctype juntamente declarandolo como un objeto tal asi despues poder cambiar sus propiedades.

 

ejemplo tenemos dentro de un datagrid1 ya cargado un cuadro de texto llamado textbox1 lo cual queremos modificarle la propiedad .text  a "chan" de el se encuenta en la fila 0 en la columa 1.

lo que hariamos seria.

CType(Me.GridView1.Rows(0).Cells(1).FindControl("textbox1"), TextBox).Text = "chan"

incluso se puede tratar si solo se quiere obtener el valor

dim x1 as new textbox

x1 = Me.GridView1.Rows(1).Cells(1).FindControl("textbox1")

Subir un archivo por ftp en asp.net 2.0

 

creamos la funcion uploadFileUsingFTP lo cual sera usado

uploadfileusingftp("ruta del ftp","direccion completa del archivo ","usuario","password")

 

Public Sub uploadFileUsingFTP(ByVal CompleteFTPPath As String, ByVal CompleteLocalPath As String, Optional ByVal UName As String = "", Optional ByVal PWD As String = "")

'Create a FTP Request Object and Specfiy a Complete Pat

'creando un objeto request ftp especificando la ruta completa del ftp

Dim reqObj As FtpWebRequest = WebRequest.Create(CompleteFTPPath)

llamando el metodo fileupload del objeto que creamos

reqObj.Method = WebRequestMethods.Ftp.UploadFile

'si el ftp requiere usuario y clave se configura

reqObj.Credentials = New NetworkCredential(UName, PWD)

on objeto filestream leera el archivo que se va asubir

Dim streamObj As FileStream = File.OpenRead(CompleteLocalPath)

'se guarda en un buffer

Dim buffer(streamObj.Length) As Byte

ahora se lee el archivo en el buffer

streamObj.Read(buffer, 0, buffer.Length)

se cierra el stream

streamObj.Close()

streamObj = Nothing

se sube un archivo en caso no existe

reqObj.GetRequestStream().Write(buffer, 0, buffer.Length)

reqObj = Nothing

End Sub

enviando un email asp.net 2.0

 

aca esta xD

Dim correo As New System.Net.Mail.MailMessage
        correo.From = New System.Net.Mail.MailAddress("micorreo@correo.com")

        Dim mailx2 As New System.Net.Mail.MailAddress("correo destino")

        correo.To.Add(mailx2)

        correo.Subject = "subjet"
        correo.Body = "cuerpo bla bla "
        correo.IsBodyHtml = true     (si es html =true)
        correo.Priority = System.Net.Mail.MailPriority.High
        Dim smtp As New System.Net.Mail.SmtpClient
        smtp.Host = "host del que envia" smpt
        smtp.Credentials = New System.Net.NetworkCredential("usuariossmpt","clave")
        Try
            smtp.Send(correo)
            Return "enviado"

        Catch ex As Exception
            Return "ERROR: " & ex.Message

        End Try

    End Function

crear un objeta datatable on fly

 

muchas veces necesitamos crear una tabla momentania por ejemplo un carro de comrpas anotar los pedidos y dejarlos momentaniamente cargados en una variable de session para despues guardarla en una db si es aceptada.

la forma de crear un datatable es de la siguiente manera despues termina guardada en un variable de session llamada cart

Dim objDT As System.Data.DataTable
      Dim objDR As System.Data.DataRow
      objDT = New System.Data.DataTable("Cart")
       objDT.Columns.Add("ID", GetType(Integer))
       objDT.Columns("ID").AutoIncrement = True
       objDT.Columns("ID").AutoIncrementSeed = 2
       objDT.Columns.Add("codigo", GetType(String))
       objDT.Columns.Add("urlimagen", GetType(String))
       objDT.Columns.Add("nombre", GetType(String))
       objDT.Columns.Add("precio", GetType(Single))
       objDT.Columns.Add("cantidad", GetType(Single))
       objDT.Columns.Add("subtotal", GetType(Single))
       objDT.Columns.Add("idpro", GetType(Single))
       Session("Cart") = objDT

 

si se fijan el autoincremento lo seteo en autoincrement y despues asigno el seed

saludos.