martes, 25 de noviembre de 2008
Exportar un grid a excel
if (GridView1.Rows.Count == 0)
{
return;
}
if (GridView1.Rows.Count < 65536)
{
GridView1.AllowPaging = false;
StringWriter tw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(tw);
HtmlForm frm = new HtmlForm();
Response.ContentType = "application/vnd.ms-excel";
Response.AddHeader("content-disposition", "attachment;filename=ReporteSol.xls");
Response.Charset = "";
EnableViewState = false;
Controls.Add(frm);
frm.Controls.Add(GridView1);
frm.RenderControl(hw);
Response.Write(tw.ToString());
Response.End();
llenar(); // aqui tiene que llamar asu llenado del grid de nuevo
}
}
no olvide agregar este using
using System.IO;
Si usan esa cosas que se llama Visual Basic = )
If GridEX1.Rows.Count = 0 Then
Return
End If
If GridEX1.RowCount < 65535 Then
GridEX1.AllowPaging = False
Dim tw As New StringWriter()
Dim hw As New HtmlTextWriter(tw)
Dim frm = New HtmlForm()
Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader("content-disposition", "attachment;filename=ReporteSol.xls")
Response.Charset = ""
EnableViewState = False
Controls.Add(frm)
frm.Controls.Add(GridEX1)
frm.RenderControl(hw)
Response.Write(tw.ToString())
Response.End()
llenar()
End If
lunes, 17 de noviembre de 2008
Cache en aspnet
Esto puede funcionar para información de no cambia continuamente, si se estan preguntando que tan continuamente eso es configurable, aqui muestro un ejemplo en c# con oracle aun que bien funciona con sqlserver y visual basic, la cual es un listado de empleados que cumplen años en ese dia. Por lo tanto no tengo que cambiar la información durante 24 horas asi que no tengo que para evitar que la aplicacion haga select por que cada usuario que ingrese al sistema, se utilizar el cache para evitarlo.
OracleConnection cn = new OracleConnection(ConfigurationManager.ConnectionStrings["TEST"].ConnectionString);
DataSet ds = new DataSet();
OracleDataAdapter da = new OracleDataAdapter("", cn);
da.SelectCommand.CommandText = "SELECT NOMBRE,
TO_CHAR(A.F_NACIMI, 'dd') || ' - ' || MESESP(TO_CHAR(A.F_NACIMI, 'mm'))
FROM EMPLEADOS where FECHA_NAC= to_char(sysdate,'mm')";
if (Cache["nombres"] == null)
{
cn.Open();
da.Fill(ds, "cumple");
cn.Close();
Cache.Insert("nombres", ds, null, System.Web.Caching.Cache.NoAbsoluteExpiration, TimeSpan.FromHours(4));
}
GridView1.DataSource = ((DataSet)Cache["nombres"]).Tables[0];
GridView1.DataBind();
-----------------------------------------
Si les sirve deje comentario.
jueves, 6 de noviembre de 2008
Microsoft retira el Windows que se ganó al público
martes, 21 de octubre de 2008
Leer y grabar imagenes en la base de datos- ASPNET
Puede utilizar la siguiente instrucción SQL para crear una tabla que puede almacenar archivos de imagen:
create table myimages
(
imgid int identity(1,1) primary key,
imgname varchar(30) null,
imgfile image not null,
imgtype varchar(30) null
)
* imgid: Para almacenar el identificador de la imagen y es la clave principal de la tabla.
* imgName: Para almacenar un nombre de la imagen.
* imgfile: Para almacenar datos de imagen binarios.
* imgtype: Para almacenar el tipo de contenido de la imagen
Las imágenes Web de forma se pueden cargar en la anterior tabla de base de datos. La carga de archivo de imagen desde el formulario de la web se pueden clasificar en las siguientes tareas:
1. Creación de un formulario web para subir los ficheros de imagen.
2. Carga de archivos de imagen a la base de datos.
El formulario HTML que se cargan los archivos de imagen a una base de datos debe cumplir los siguientes requisitos:
* Utilice multipart / form-cifrado de datos
* Utilice el método POST.
Puede utilizar el siguiente fragmento de código para crear un formulario para la carga de imágenes:
<form enctype="multipart/form-data" id="Form2" method="post" runat="server">
<h3> Demo on working with image filesh3>
<asp:Label id="Label1" style="Z-INDEX: 101; LEFT: 56px; POSITION: absolute; TOP: 120px" runat="server">Enter File nameasp:Label>
<asp:Button id="Button2" style="Z-INDEX: 107; LEFT: 248px; POSITION: absolute; TOP: 264px" runat="server" Text="View images" Width="96px">
<asp:Button id="Button1" style="Z-INDEX: 106; LEFT: 248px; POSITION: absolute; TOP: 216px" runat="server" Text="Upload Me"> <input id="upload_file" type="file" runat="server" style="Z-INDEX: 105; LEFT: 256px; POSITION: absolute; TOP: 160px">
<asp:TextBox id="txtimgname" style="Z-INDEX: 102; LEFT: 256px; POSITION: absolute; TOP: 120px" runat="server">
asp:TextBox>
form>
En el código anterior, el atributo enctype notifica al servidor que los datos binarios se subirán. El formulario tiene un archivo de control sobre el terreno por el nombre upload_file, que puede utilizar para buscar y localizar el archivo. El formulario también tiene dos botones de control, uno para subir y uno para ver. La interfaz se parece a como se muestra en la figura:
Cargar un archivo de imagen a una base de datos
Cuando el usuario hace clic en el botón de subida me, un manejador de evento se invoca. En el evento que usted puede agregar el código siguiente al cargar el archivo en la base de datos:
private void Button1_Click(object sender, System.EventArgs e)
{
Stream img_strm = upload_file.PostedFile.InputStream;
//Retrieving the length of the file to upload
int img_len = upload_file.PostedFile.ContentLength;
//retrieving the type of the file to upload
string strtype = upload_file.PostedFile.ContentType.ToString();
string strname = txtimgname.Text.ToString();
byte[] imgdata = new byte[img_len];
int n = img_strm.Read(imgdata, 0, img_len);
int result = SaveToDB(strname, imgdata, strtype);
}
En el código anterior, hay tres piezas principales de datos que son importantes para cargar la imagen:
Content-Type (strtype)
Name (strname)
ImageData (imgdata)
El código anterior en el archivo para ser cargado en sptored es img_strm, objeto de flujo de la clase. En img_strm el archivo se almacena en formato bimary Usted debe convertir a matriz de bytes antes de cargar en la base de datos. La siguiente declaración de la anterior fragmento de código muestra cómo el archivo se convierte en matriz de bytes:
int n = img_strm.read (imgdata, 0, imglen)
El objeto Stream proporciona la lectura () método para convertir el archivo binario a partir de matriz de bytes. Acepta tres paramters
* búfer: Especifica una matriz de bytes.
* Offset: Especifica el byte en el buffer, desde donde el almacenamiento de datos se iniciará.
* Cuenta: Especifica el número máximo de bytes que se lee desde el actual flujo.
El código anterior en el archivo para ser cargado en sptored es el código principal el desempeño de esta función se da a continuación. Su caso manejador de la "opinión de la imagen" evento. El nombre de la imagen que está escrito en el cuadro de texto en la pantalla.
private void Button2_Click(object sender, System.EventArgs e)
{
connection.Open();
SqlCommand command1 = new SqlCommand("select imgfile from myimages where imgname=@param", connection);
SqlParameter myparam = command1.Parameters.Add("@param", SqlDbType.NVarChar, 30);
myparam.Value = txtimgname.Text;
byte[] img = (byte[])command1.ExecuteScalar();
MemoryStream str = new MemoryStream();
str.Write(img, 0, img.Length);
Bitmap bit = new Bitmap(str);
Response.ContentType = "image/jpeg";//or you can select your imagetype from database or directly write it here
bit.Save(Response.OutputStream, ImageFormat.Jpeg);
connection.Close();
}
lunes, 13 de octubre de 2008
Codigo Biker
Conduzco mi màquina, no me la pongo, mi màquina no es un sìmbolo de estatus, existe simplemente para mì y sòlo para mì. Mi màquina no es un juguete, es una extensiòn de mi mismo y la trato en consecuencia con el mismo respeto que me tengo a mì.
Me esfuerzo por compreder el funcionamiento interno de la màquina, desde lo màs bàsico a lo mas complejo. Aprendere todo lo que pueda sobre mi màquina, de manera que pueda confiar solamente en mi mismo para cuidarla conservala.
Me esfuerzo constantemente en mejorar mi dominio sobre mi màquina. Aprenderè sus lìmites y a usar mi habilidad para llegar a ser uno con mi màquina para asì mantenernos a salvo los dos. Yo soy el dueño y ella està a mis òrdenes. Trabajamos juntos en armonìa, en equipo seremos un equipo invencible.
No temo a la muerte, sin embargo harè todo lo posible para evitar que llegue pronto. El miedo en la carretera lleva a la muerte. Por eso no me dejo atemorizar, serè mi dueño, lo dominarè.
Mis màquinas sobreviviràn, por eso seràn mi legado, las cuidarè para futuros bikers que las aprecien como yo las he apreciado, cualesquiera que pueda ser.
No monto en la moto para llamar la atenciòn, respeto o dar miedo a nadie que no ande en moto, ni tampoco deseo intimidar a nunguno de ellos. Para aquellos que no quieran conocerme, todo lo que deseo es que me ignoren. Para los que quieren conocerme, compartirè con ellos la verdad de mi mismo para que puedan comprenderme y no temer a otros como yo.
Nunca serè un agresor en la carretera, sin embargo, si alguien se mete conmigo, su agresiòn serà respondida con los medios legales que tenga a mano.
Mostrarè respeto acea otros bikes màs experimentados y conocerdores que yo. Aprenderè de ellos lo que pueda. No mostrarè desprecio hacia otros bikers menos experimentados y conocedores que yo; les enseñarè lo que pueda.
Serà mi tare ser mentor de nuevos bikers que deseen intruducirse en el modo de vida biker para que la casta continùe. les enseñarè com a mi me han enseñado otros antes.
Preservarè el honor y las tradiciones de bikers anteriores a mì y las pasrè sin alterarlas.
No juzgare a oros bikers por la màquina que elijan, su apariencia o su profesiòn, les juzgare ìnicamente por su conducta como biker.
Estoy orgulloso de mis obligaciones como biker, aunque no se las harè cumplir a otros, si preguntan se las compartirè con ellos. Estarè dispuesto a ayudar a cualquier bikerque realmente necesite mi ayuda. Nunca pedirè otro biker que haga lo que puedo hacer por mi mismo.
Yo no soy un biker de fin de semana, soy un biker cuando y donde voy, es decir, en todo momento. Estoy orgulloso de ser biker y no escondo mi modo de vida a nadie Monto en moto porque amo la libertad, la independencia y el movimiento del suelo bajo mis pies, pero sobre todo, monto para conocerme mejor a mismo, mi màquina, las tierras por donde voy, y buscar y conocer otros bikers como yo.
lunes, 29 de septiembre de 2008
Crear un Store Procedure en SQL 2005 con Visual Studio
Pasos.
1.) Inicio Visual Studio
2.) Cree un nuevo projecto de tipo "SQL Server project"
3.) Inmediatemente de Crear el proyecto le pedira connectarse con su servidor. Ingrese la informacion necesaria(usuario,password,servidor)
4.) Inmediatemente Le preguntara que si decea Habilitar el Sql/CLR Debugging, indique que si
5.)Sobre el proyecto presione click derecho busque add y luego elija Store Procedure( en el solution explorer) coloque un nombre a su nuevo store procedure(sp.vb o sp.cs)
6.)En el Sp que acaba de crear asegure de tener las siguientes Imports ó Using
Imports System
Imports System.Data
Imports System.Data.Sql
Imports System.Data.SqlTypes
Imports Microsoft.SqlServer.Server
7.) y de aqui en adelante es una Sub ó Void totalmente Normal, un ejemplo sensillo
Public Shared Sub StoredProcedure1
Dim conn As New SqlConnection("context connection=true")
conn.Open()
Dim cmd As New SqlCommand("SELECT ProductID, Name, ListPrice FROM Production.Product ORDER BY ListPrice DESC", conn)
SqlContext.Pipe.ExecuteAndSend(cmd)
End Sub
8.) Luego f5 y ya esta en sql server, pueder ir a verlo con el Management Studio en la seccion de programacion, Store procedure
puedes ejecutarlo
con un exe. Ejemplo.
exec dbo.StoredProcedure1
si te sale este error
Msg 6263, Level 16, State 1, Line 1Execution of user code in the .NET Framework is disabled. Enable "clr enabled" configuration option.
Tenemos problemas pero es por que no tiene habilitado el .net framework en el sql
corre este script para correjilo.
sp_configure 'clr enabled', 1
go
reconfigure
go
Para Probar el Sp en el mismo .net tiene que hacer los siguiente pasos:
1.) Pon un break point sobre tu Store procedure.
2.)Preciona click derecho sobre tu proyecto y agrega un TEST SCRIPT
agrega el codigo de tu prueba de script que si es al que esta arriba deberia ser asi:
exec dbo.StoredProcedure1
y preciona click derecho sobre su script de prueba en que mi caso se llama test.sql y le dices que sea el default script.
3.) preciona f5 y ahora no solo lo pasara al sql si no que hara una pausa en tu break point.
miércoles, 10 de septiembre de 2008
Cristobal Colón era soltero !!!!!
Tenemos que admitir que Cristóbal Colón pudo descubrir América sólo
Porque ¡¡ERA SOLTERO!!
Si Cristóbal Colón, hubiese tenido una esposa, mira todas las
Preguntas que le hubiera hecho:
-¿Y por qué tenés que ir vos?
- ¿Y por qué no mandan a otro?
- ¡Todo lo ves redondo! ¿Estás loco o sos idiota?
- ¡No conocés ni a mi familia y vas a descubrir el nuevo mundo!
- ¿Qué escondés? ¡Ni siquiera sabés adonde vas!
- ¿Y sólo van a viajar hombres? ¿Quién te lo va a creer?
- ¿Y por qué no puedo ir yo si vos sos el jefe?
- ¡Desgraciado, ya no sabés qué inventar para estar fuera de la casa!
- ¡Si cruzás esa puerta yo me voy con mi mamá! ¡Sinvergüenza!
- ¿Y quién es esa tal María? ¿Qué Pinta? ¡Y la muy hija de puta se
Hace la Santa!
- ¿Y decís que es una Niña?... ¡Andá a la mierda....!
- ¡Tenías todo planeado, verdad! Seguro que vas a encontrarte con unas
Indias putas.
- ¿A mí me vas engañar?
- ¿Qué la Reina va a vender sus joyas para tu viajes? ¡Comé mierda!....
- ¿Me tomás por bruta?
- ¿Qué tenés con esa vieja?
!Sos un puto!!!
¿A coger vas a ir, verdad?
- ¡Vos no vas a ir a ningún lado!
- No va a pasar nada si el mundo sigue plano .
Así que ni te vistas que
¡NO vas!
Me escuchaste.......!!!!!!!!!!! !
C O L O N .... VENI PARA ACA!!!!!!
martes, 2 de septiembre de 2008
TERAPIA DE PAREJA
Marido y mujer acuden al psicólogo tras 20 años de matrimonio.
Cuando se les pregunta cuál es el problema, la mujer saca una lista larga y detallada de todos los problemas que han tenido durante los 20 años de matrimonio:
...poca atención, falta de intimidad, vacío, soledad, no sentirse amada, no sentirse deseada...
3 veces por semana. ¿Puede hacerlo?'
martes, 12 de agosto de 2008
.........Me compré una nueva Bike!!!!!!
se trata de esta "belleza" que ven a su izquierda (igualita: mismo modelo, año y color).
Es una Honda "CBX Twister 250".
Ya llevaba varios meses amenazando con comprar otra moto, por que la vento me fregaba mas que mujer o casi igual.
Queria una moto de verdad y esta es la unica que pudo pagar mi billetera.
Es bonita, económica. medio rápida aun que espero tener algo mas rapido en un futuro.
Dicen los mitos que puede llegar a correr hasta 150km por hora pero no he podido probarla aun, Tiene 6 velocidades, en lo personal creo que es una buena maquina, llega hacer 125km por galon asi que medio ahorro algo de dinerito. Muchos tienen miedo de caerse yo tengo un dicho:
Existen 2 tipos de Motociclistas...
los que ya se cayeron
y los que se van a caer
lunes, 28 de julio de 2008
Lee el relato de los Merodeadores
Rowling ha declarado: "Me lo pasé muy bien escribiendo la tarjeta y estoy absolutamente encantada de que haya recaudado 25.000 libras para dos causas tan dignas".
La espera ya ha terminado y Waterstone's ha publicado el relato de los Merodeadores para gusto de todos. La historia, que se sitúa tres años antes del nacimiento de Harry.
La motocicleta de carreras tomó tan rápido la curva afilada en la oscuridad que ambos policías del coche de la persecución gritaron: "¡Guau!". El Sargento Fisher apretó su largo pie en el freno, creyendo que el chico que montaba en el asiento de atrás de la moto volaría bajo sus ruedas. Sin embargo, la moto siguió sin arrojar a ninguno de sus ocupantes, y con un pestañeo de su luz roja trasera, desapareció en la estrecha calle de al lado.
-¡Ya les tenemos! -exclamó con excitación el capitán de policía Anderson-. ¡Esto es un callejón sin salida!
Tomando el volante con determinación y haciendo crujir la maquinaria, Fisher rayó la mitad de la pintura de la chapa del coche en el intento de perseguirlos por el callejón.
Los dos pasajeros estaban atrapados entre una pared de ladrillo y el coche de la policía, que ahora se acercaba hacia ellos como un depredador gruñón de ojos luminosos.
Había tan poco espacio entre las puertas del coche y los muros del callejón que Fisher y Anderson habían salido con dificultad del vehículo. Dañó su dignidad tener que medir pulgada a pulgada, como si se tratasen de cangrejos. Fisher arrastró su generosa panza por el muro, arrancando botones de su camisa por el camino, y finalmente descolocando el retrovisor con su parte trasera.
-¡Bajad de la moto! -bramó a los jóvenes que sonreían con insolencia, que se habían sentados con la luz azul parpadeante como si disfrutasen con ello.
Lo hicieron como se lo habían mandado. Después de librarse del espejo retrovisor roto, Fisher les miró con ferocidad. Parecían tener unos dieciocho años. El que había estado conduciendo tenía una melena larga y negra. Su buen aspecto insolente desagradablemente le recordó a Fisher al novio guitarrista y holgazán de su hija. El segundo chico también tenía cabello negro, aunque era corto e iba en todas las direcciones. Llevaba gafas y una ancha sonrisa. Los dos vestían camisetas con un gran pájaro dorado estampado; un emblema, no había lugar a dudas, de alguna banda de rock sin ritmo y ensordecedora.
- ¡No lleváis cascos! -gritó Fisher, señalando la cabeza desprotegida de uno de ellos-. Excediendo el límite de velocidad con una considerable cifra -(de hecho, la velocidad registrada había sido mayor que la que Fisher estaba preparado para aceptar de una moto que pudiese viajar)-. ¡Ignorar la detención de la policía!
-¡Nos encantaría detenernos para conversar! -dijo el chico con gafas-. Solo intentábamos...
-No te hagas el listillo. ¡Los dos estáis metidos en un buen lio! -gruñó Anderson-. ¡Nombres!
-¿Nombres? -repitió el conductor de cabello largo-. Er... bueno... déjame ver. Está Wilberforce... Bathsheba... Elvendork...
-Y lo que es bonito sobre ese es que puedes usarlo tanto para chico como para chica -dijo el chico con gafas.
-Oh, ¿te refieres a nuestros nombres? -preguntó el primero-. Deberías habérmelo dicho. Éste de aquí es James Potter, y yo soy Sirius Black.
-Las cosas se van a poner verdaderamente negras para ti en un minuto, pequeño descarado...
-Pero ni James ni Sirius estaban prestando atención. De repente estuvieron tan alerta como perros de caza, mirando más allá de Fisher y Anderson, sobre el techo del coche de policía, en la boca oscura del callejón. Entonces, con movimientos idénticos y fluidos, se llevaron la mano a sus bolsillos traseros.
En el espacio de un latido los dos policías imaginaron pistolas saliendo de ellos, pero un segundo después descubrieron que los motoristas no habían sacado otra cosa que...
- ¿Baquetas? -preguntó Anderson-. Sois un par de bromistas, ¿verdad? Está bien, quedáis arrestados bajo los cargos de...
Pero Anderson nunca llegó a decir los cargos. James y Sirius habían gritado algo incomprensible, y los haces de luz del coche se habían movido.
Los policías dieron una vuelta a su alrededor, después miraron a sus espaldas. Tres hombres estaban volando -realmente volaban- en el callejón sobre escobas. Y al mismo tiempo, el coche de policía estaba encabritado sobre sus ruedas traseras.
Las rodillas de Fisher cedieron; cayó sentado. Anderson tropezó con las piernas de Fisher y cayó encima de él, mientras oían flump-bang-cruch escucharon a los hombres de las escobas chocar contra el coche y caer, aparentemente inconscientes, en el suelo, mientras trozos de escoba caían a su alrededor.
La moto había vuelto a rugir de vida de nuevo. Con la boca abierta, Fisher miró atrás para ver a los dos adolescentes.
-¡Muchas gracias! -le dijo Sirius sobre el ruido de la maquinaria-. ¡Os debemos una!
-Sí, ha sido un placer conoceros -dijo James-. Y no lo olvidéis: ¡Elvendork! ¡Es unisex!
Hubo un crujido que sacudió la tierra, y Fisher y Anderson se abrazaron el uno al otro de miedo; su carro acababa de caer de nuevo al suelo. Ahora era el turno de la moto de rugir. Antes de que los policías diesen crédito a lo que veían sus ojos, surgió en los aires: James y Sirius desaparecieron en el cielo nocturno, con la luz trasera parpadeando detrás de ellos como un rubí que desaparecía.
jueves, 3 de julio de 2008
Operaciones de Acceso a datos Asincronico 2
Imports System
Imports System.Data
Imports System.Data.SqlClient
Imports System.Threading
' Add the remaining code to the form's class:
Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Dim connection1 As New SqlConnection(GetConnectionString())
Dim connection2 As New SqlConnection(GetConnectionString())
Dim connection3 As New SqlConnection(GetConnectionString())
Dim commandText1 As String = _
"UPDATE Production.Product " & _
"SET ReorderPoint = ReorderPoint + 1 " &_
"WHERE ReorderPoint Is Not Null;" & _
"WAITFOR DELAY '0:0:01';" & _
"UPDATE Production.Product " & _
"SET ReorderPoint = ReorderPoint - 1 " _
"WHERE ReorderPoint Is Not Null"
Dim commandText2 As String = _
"UPDATE Production.Product " & _
"SET ReorderPoint = ReorderPoint + 1 " & _
"WHERE ReorderPoint Is Not Null;" & _
"WAITFOR DELAY '0:0:05';" & _
"UPDATE Production.Product " & _
"SET ReorderPoint = ReorderPoint - 1 " &_
"WHERE ReorderPoint Is Not Null"
Dim commandText3 As String = _
"UPDATE Production.Product " & _
"SET ReorderPoint = ReorderPoint + 1 " & _
"WHERE ReorderPoint Is Not Null;" & _
"WAITFOR DELAY '0:0:10';" & _
"UPDATE Production.Product " & _
"SET ReorderPoint = ReorderPoint - 1 " & _
"WHERE ReorderPoint Is Not Null"
Dim waitHandles(2) As WaitHandle
Try
connection1.Open()
Dim command1 As New SqlCommand(commandText1, connection1)
Dim result1 As IAsyncResult = command1.BeginExecuteNonQuery()
waitHandles(0) = result1.AsyncWaitHandle
connection2.Open()
Dim command2 As New SqlCommand(commandText2, connection2)
Dim result2 As IAsyncResult = command2.BeginExecuteNonQuery()
waitHandles(1) = result2.AsyncWaitHandle
connection3.Open()
Dim command3 As New SqlCommand(commandText3, connection3)
Dim result3 As IAsyncResult = command3.BeginExecuteNonQuery()
waitHandles(2) = result3.AsyncWaitHandle
Dim result As Boolean = WaitHandle.WaitAll(waitHandles, 60000, False)
If result Then
Dim rowCount1 As Long = command1.EndExecuteNonQuery(result1)
TextBox1.Text = "Completed " & _
System.DateTime.Now.ToLongTimeString()
Dim rowCount2 As Long = command2.EndExecuteNonQuery(result2)
TextBox2.Text = "Completed " & _
System.DateTime.Now.ToLongTimeString()
Dim rowCount3 As Long = command3.EndExecuteNonQuery(result3)
TextBox3.Text = "Completed " & _
System.DateTime.Now.ToLongTimeString()
Else
Throw New Exception("Timeout")
End If
Catch ex As Exception
TextBox4.Text = ex.ToString
End Try
connection1.Close()
connection2.Close()
connection3.Close()
End Sub
viernes, 30 de mayo de 2008
Operaciones de Acceso a datos Asincronico
BeginExecuteReader y EndExecuteReader estos son metodos del modelo asincronico, aqui un ejemplo de como utilizarlos.
Solo recuerde que para utilizar sincronia necesita poner la siguiente clausula en el connetion string:
Asynchronous Processing=true
Dim cnstring As String = "user id=sa;" & _
"password=pass;initial catalog=northwind;" & _
" data source=.\sqlexpress;Asynchronous Processing=true"
Dim cn1 As New SqlClient.SqlConnection(cnstring)
Dim cn2 As New SqlClient.SqlConnection(cnstring)
Dim cn3 As New SqlClient.SqlConnection(cnstring)
Dim commandText1 As String = _
"WAITFOR DELAY '0:0:01';" & _
"SELECT * FROM products " & _
" WHERE PRODUCTID=50"
Dim commandText2 As String = _
"WAITFOR DELAY '0:0:05';" & _
"SELECT * FROM products " & _
" WHERE PRODUCTID=50"
Dim commandText3 As String = _
"WAITFOR DELAY '0:0:10';" & _
"SELECT * FROM products " & _
" WHERE PRODUCTID=50"
Dim waitHandles(2) As Threading.WaitHandle
Try
cn1.Open()
Dim command1 As New SqlClient.SqlCommand(commandText1, cn1)
Dim result1 As IAsyncResult = command1.BeginExecuteReader()
waitHandles(0) = result1.AsyncWaitHandle
cn2.Open()
Dim command2 As New SqlClient.SqlCommand(commandText2, cn2)
Dim result2 As IAsyncResult = command2.BeginExecuteReader()
waitHandles(1) = result2.AsyncWaitHandle
cn3.Open()
Dim command3 As New SqlClient.SqlCommand(commandText3, cn3)
Dim result3 As IAsyncResult = command3.BeginExecuteReader()
waitHandles(2) = result3.AsyncWaitHandle
Dim index As Integer
For countWaits As Integer = 1 To 3
index = Threading.WaitHandle.WaitAny(waitHandles, 60000, False)
Select index
Case 0
Dim reader1 As SqlClient.SqlDataReader
reader1 = command1.EndExecuteReader(result1)
If reader1.Read Then
TextBox1.Text = "Terminado 1 - " & _
System.DateTime.Now.ToLongTimeString()
End If
reader1.Close()
Case 1
Dim reader2 As SqlClient.SqlDataReader
reader2 = command2.EndExecuteReader(result2)
If reader2.Read Then
TextBox2.Text = "Terminado 2 - " & _
System.DateTime.Now.ToLongTimeString()
End If
reader2.Close()
Case 2
Dim reader3 As SqlClient.SqlDataReader
reader3 = command3.EndExecuteReader(result3)
If reader3.Read Then
TextBox3.Text = "Terminado 3 - " & _
System.DateTime.Now.ToLongTimeString()
End If
reader3.Close()
Case Threading.WaitHandle.WaitTimeout
Throw New TimeoutException("Timeout")
End Select
Next
Catch ex As Exception
TextBox4.Text = ex.ToString
End Try
martes, 27 de mayo de 2008
Como leer y escribir fotos en una db en .net
aqui doy un ejemplo de como guardar fotos en la base de datos:
Guardar fotos
Tabla del sql server
CREATE TABLE fotos(
[codigo] [int] primary key IDENTITY (1, 1),
[nombre] [varchar](50) NULL,
[foto] [image] NULL
)
Tu formulario tiene que estar de la siguiente manera:
-- Codigo del boton Imagen
(despliega la ventan para seleccionar la imagen)
OpenFileDialog1.ShowDialog()
txtruta.Text = OpenFileDialog1.FileName
-- codigo del boton grabar
Dim cn As New SqlClient.SqlConnection("user id=sa;password=pass;initial" & _ "catalog=northwind;data source=.\sqlexpress")
'lectura de la foto de imagen a binario
Dim filePath As String = txtruta.Text
Dim stream As IO.FileStream = New IO.FileStream(filePath, _
IO.FileMode.Open, IO.FileAccess.Read)
Dim reader As IO.BinaryReader = New IO.BinaryReader(stream)
Dim foto() As Byte = reader.ReadBytes(stream.Length)
reader.Close()
stream.Close()
'guardado de la fot en la db
Dim cmd As SqlClient.SqlCommand = New SqlClient.SqlCommand( _
"INSERT INTO fotos( nombre, foto) " & _
"Values(@nombre, @foto)", _
cn)
cmd.Parameters.Add("@nombre", SqlDbType.VarChar, 50).Value = txtnombre.Text
cmd.Parameters.Add("@foto", SqlDbType.Image, foto.Length).Value = foto
cn.Open()
cmd.ExecuteNonQuery()
cn.Close()
Lleer fotos
Tu formulario tiene que estar de la siguiente manera:
-- Codigo del boton buscar(busca el codigo del textbox y despliega la imagen)
nota: no usen * en el select, es mas eficiente poner los campos.
Dim cn As New SqlClient.SqlConnection("user id=sa;" & _
"password=pass;initial catalog=northwind;data source=.\sqlexpress")
Dim cmd As New SqlClient.SqlCommand("", cn)
Dim dr As SqlClient.SqlDataReader
Dim sql As String
sql = "select nombre, foto from fotos where codigo=@codigo"
cmd.CommandText = sql
cmd.Parameters.Add("@codigo", SqlDbType.Int, 4).Value = txtcodigo.Text
cn.Open()
dr = cmd.ExecuteReader(CommandBehavior.SequentialAccess _
Or CommandBehavior.CloseConnection)
If dr.HasRows Then
While dr.Read()
'nombre de la foto
lblnombre.Text = Convert.ToString(dr!nombre)
'
If (dr.IsDBNull(1)) Then
MessageBox.Show("No hay imagen", "", _
MessageBoxButtons.OK, MessageBoxIcon.Stop)
Else
Dim bytes As SqlTypes.SqlBytes = dr.GetSqlBytes(1)
PictureBox1.Image = Image.FromStream(bytes.Stream)
'PictureBox1.Image=bytes.Write
End If
End While
Else
MessageBox.Show("Codigo no existe", "", _
MessageBoxButtons.OK, MessageBoxIcon.Stop)
End If
cn.Close()
Cambien la propiedad SizeMode a StretchImage para que la imagen se adapte al control.
miércoles, 26 de marzo de 2008
Tres metros sobre el cielo
lunes, 18 de febrero de 2008
NO SOY DE LA LANDIVAR
viendo pastar a su rebaño de ovejas, cuando de repente aparece
por el inhóspito camino una camioneta Navigator 4x4 Full Size
de 5000 kilómetros , con su juego de neblineras como para iluminar
el Mateo Flores prendidas, a pesar de no haber tal niebla.
Se detiene frente al viejito y se baja un tipo de no más de 30 años.
Traje negro, camisa blanca "ARMANI" y zapatos BOSTONIAN". ( sin nombre claro,
Porque le gusta que le digan licenciado)
Se acerca al viejo y le dice:
Ala señor, si yo le adivino cuántas ovejas tiene usted en su
rebaño, ¿será que me regala una? Es que están réquete.
El viejo responde con algo de asombro: Sí, cómo no".
Entonces el joven vuelve a su 4x4 y saca una Sony Vaio,
Core 2 Extream 5.0 Ghz con 4GB de RAM,
se conecta a la red por medio de su Motorola Razor V,
baja una base de datos de 1 GB.
Entra a una página de la NASA , mediante un satélite
identifica la zona exacta de donde está el rebaño,
calcula el promedio histórico del tamaño de una oveja
tipo "MERINO" mediante una tabla dinámica de Excel y
con la ejecución de algunas macros personalizadas en Visual
Basic, logra completar el diagrama de flujo.
Luego de tres horas le responde al viejo:
Usted tiene 1347 ovejas, 256 machos y 1091 son hembras y
4 pueden estar embarazadas, o sea pues, de las hembras".
El viejo asintió y le dijo que efectivamente, así era y que se
podía llevar una oveja.
El joven tomó una y la cargó en su 4 x 4 y estaba por irse,
cuando el viejo lo detuvo y le preguntó:
"Y si yo llegase adivinar en donde
estudió, ¿Usted me devuelve mi oveja?
El joven le dijo sonriendo "Seguro, hombre," mientras abría
la puerta de su camioneta para marcharse. El viejo entonces contestó:
"Usted estudió en la Landivar !!!" El joven, sorprendido completamente, dijo:
Ala...! o sea y ¿Cómo se dio cuenta?"
El viejo le respondió: Por cuatro razones:
Primero, por lo mamón que es usted;
segundo, vino sin que yo le hablara;
tercero, me cobró por decirme algo que yo ya sé;
y cuarto, se nota que no tiene ni puta idea del negocio.
Así que ya devuélvame a mi perro! pendejo.
lunes, 7 de enero de 2008
COMO SON LOS SIGNOS
Extrovertido, amable, espontáneo, no puedes andar jugando con este tipo de personas. Chistoso, excelente besador y EXTREMADAMENTE adorable, cree en las relaciones, dictivo y ruidoso.
TAURO: El Vagabundo ( 21 Abr. - 20 May.)
Le gustan las relaciones largas, le gusta luchar por lo que quiere. Extremadamente extrovertido, le gusta ayudar a la gente cuando lo necesitan, buena personalidad, buen besador, un poco necio, cuidadoso y son las personas más atractivas de esta tierra.
GÉMINIS: El Irresistible (21 May. - 21 Jun.)
Lindos. Su amor es único. Les gusta escuchar, muy buenos para ya sabes qué...buenos amantes, no les gusta pelear pero pueden noquearte si lo quieren. Confiable, felices, comunicativos, extrovertidos, SIEMPRE PERDONAN. Tienen una linda sonrisa, generosos y fuertes. EL MÁS IRRESISTIBLE.
CÁNCER: El Lindo (22 Jun.- 21Jul.)
Asombroso besador. Muy atractivos, El amor es lo mas importante. Muy románticos, La persona que siempre cuidara de usted. Nunca conocerá a alguien igual! Eternamente creativo. Extremadamente suertudo y orgulloso de el. Espontaneo. Gran contador de historias. No es un peleador PERO PUEDE LLEGAR a knockearte, si lo sacas de el.
LEO: El León (22 Jul. - 23 Ago.)
Gran comunicador. Atractivo y apasionado. Sabe como divertirse. Es muy bueno para casi todo. Gran besador, impredecible, extrovertido, adictivo, Atractivo pero cuidado, no saben lo que quieren. Les gusta andar de Relación en relación, les gusta jugar. Raro de encontrar, bueno cuando lo Hallas.
VIRGO: El que espera (24 Ago. - 23 Sep.)
Dominante en las relaciones. Siempre tienen alguien que los ame. Siempre tienen la última palabra. Cuidadosos, carismáticos, inteligentes, leales, Les gusta hablar. Lo que siempre habías estado buscando, fácil de Complacer y le gusta ser el primero y el único.
LIBRA: El Pobre (24 Sep. - 23 Oct.)sol
Agrada a todo el que lo conoce. Su amor es único. Un poco tonto, divertido Y dulce. Tiene un encanto único. Es una de las personas más protectoras que conocerás pero que no la querrás nunca de enemigo pues podrías Terminar llorando.
ESCORPIÓN: El Adicto (24 Oct. - 22 Nov.)
EXTREMADAMENTE adorable, inteligente, le encanta bromear, tiene muy buen sentido del humor, enérgico, predice el futuro, GRAN besador. Siempre Consiguen lo que quieren. Atractivos, fáciles de tratar, les gusta estar en relaciones largas, comunicativo, romántico ycuidadosos.
SAGITARIO: El Promiscuo (23 Nov. - 22 Dic.)
Espontáneo, gran carisma, difícil de encontrar pero fabuloso cuando lo encuentran. Le gusta ser generoso, lindos, románticos, no lo quieres de enemigo, es bueno con todas las personas que conoce.
CAPRICORNIO: El Amante (23 Dic. - 20 Ene)
Lindo, ama coquetear, y, inteligente, muy ual, predice el futuro, Irresistible. Un loco... muy bueno para ya sabes qué... le gusta estar en relaciones largas. Gran conversador, siempre consigue lo que quiere, divertido, le gusta bromear.
ACUARIO: Como pez en al agua (21 Ene - 19 Feb.)
Confiable, atractivo, buen besador, único en su tipo, le gusta las relaciones a largo plazo, extremadamente enérgico e impredecible. Sobrepasará tus expectativas. No es un luchador pero podría dejarte tirado En el suelo.
PISCIS: El Pasable (20 Feb. - 20 Mar)
Cuidadoso y noble, inteligente, el centro de atención, gran carisma, tiene la última palabra. Es bueno de hallar pero difícil de conservar. Le gusta viajar muchísimo, extremadamente raro pero en el buen sentido de la palabra. Gran sentido del humor! Analítico. Siempre consigue lo que se propone, le gusta bailar, muy popular, tonto, divertido y dulce.