|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - gerloxxx
76
« en: Sábado 17 de Julio de 2010, 02:10 »
Trabaja con los eventos MouseEnter y MouseLeave, en cada evento le puedes asignar la imagen que desees, este par de imagenes los puedes guardar en un par de picturebox y los dejas ocultos.
Espero te sirva la idea.
saludos
77
« en: Sábado 17 de Julio de 2010, 02:01 »
Creo que estoy entendiendo poco... si recorres TODO el conjunto de resultados, al comparar cada registro incorrecto va a entrar al else, pero igual va a haber un momento en que entre a datos correctos, tal vez lo que necesitas es hacer la busqueda con el while y tomar acciones fuera de él, puedes romper el while cuando encuetres el registro... o algo por el estilo.
Con tus datos de ejemplo, digamos que buscas "techo" y tienes los siguientes valores:
1-casa 2-techo 3-ventana
en el primer ciclo comparas casa = techo, y se va para el else del if... en el segundo ciclo techo = techo, lo encuentra en el segundo ciclo, pero para este punto ya mostro el mensaje de datos incorrectos del primero ciclo... y en el tercer ciclo ventanta = techo, y vuelve a mostrar el mensaje de datos incorrectos.
Puedes hacer algo como esto:
dim blnEncontrado as Boolean = false while myReader.Read() if myReader.Item("campo") = DatoBuscado then blnEncontrado = true break End if End While
if blnEncontrado Then '...hacer algo else '...mensaje de error
Saludos
78
« en: Jueves 15 de Julio de 2010, 19:24 »
Segun entiendo lo que intentas es validar un loggin o algo asi. Revisa en el analizador de consultas que arroja ese query. El metodo Read cada vez que lo ejecutas, por decirlo asi te coloca en un renglon de la tabla que obtuviste del query, pero en tu query tu ya estas filtrando algunos renglones: Dim sql As String = "select * from pruebas where codigo='" & txtCodigo.Text & "'"
Por lo que si tu query anterior no consigue ningun registro, nunca entrara al while y no llegaras a esta parte: If Trim(myreader.Item("clave")) <> txtPassword.Text Then 'realiza otra accion MessageBox.Show("Datos Incorrectos") End If
lo que puedes hacer es filtrar desde el query como lo tienes, y luego preguntar si encontro algo (si obtienes más de un registro y necesitas el while, activa una bandera para ver si entro a este): if myreader.Read() then 'codigo encontrado else MessageBox.Show("Datos Incorrectos") endif
espero estar entendiendo
79
« en: Jueves 15 de Julio de 2010, 18:43 »
Gracias, realmente con esto de la encapsualcion si me falta un poco de imaginación a la hora de comunicar mis form's, me he topado con varios casos y realmente pienso que la forma en que lo he hecho no es lo ideal, por eso me he puesto a investigar un poco más. Necesito una forma tipo InputBox de basic, actualizar el progressbar de mi forma MDI cada que las formas hijas van avanzando en un proceso y cosas por el estilo. He leido este blog que se me ha hecho interesante, (no son delegados claro, es por medio de una interfaz, pero por ahi lei que los delegados igual sirven, aparte de lo que me mencionas): http:\ltuttini.blogspot.com2010 1c-datagridview-parte-3-pasaje-de.html ojala y alguien tenga ejemplos de este tipo
80
« en: Jueves 15 de Julio de 2010, 18:24 »
Hola el problema puede ser con la seguridad de windows, revisa si tu puedes crear o modificar archivos en ese directorio, tal vez solo un administrador del equipo pueda, si es asi, dependiendo de la version de windows, te vas a las propiedades de la carpeta, luego en seguridad, agregar, avanzadas, y agregas a todos, luego le das los permisos a todos... (o algo asi)...
lo primero que tienes que hacer es ver si puedes escribir en esa carpeta para ver si ese es el problema....
saludos
81
« en: Jueves 15 de Julio de 2010, 18:08 »
cuando el id es autonumerico, access lo pone solo, luego lo pedes recuperar con un query, algo asi como: SELECT LAST(campo_clave) FROM tabla
si no es autonumerico tu tendrias que recuperar el ultimo para pasarselo como id (SELECT MAX(CAMPO) + 1 AS TOTAL FROM TABLA), para luego insertarlo en la otra tabla y crear la relacion saludos
82
« en: Jueves 15 de Julio de 2010, 02:51 »
Hola hice la prueba conectando tu codigo a sql server, lamentablemente no tengo mysql, y no me arroja ningun error (devuelve true o false según si obtiene o no el resultado), imagino que lo que intentas es preguntar si el la consulta arrojo algo antes de intentar trabajar con ese resultado, vdd? Lo que podrias hacer en lugar de preguntar por: If dr.HasRows Then 'argumentos ..... End If
mejor pregunta si puedes leer del sqlDataReader: If dr.Read() Then MsgBox(dr.Item("nom_campo")) End If ' o bien un ciclo while dr.Read() Then ...
espero te sirva esta sugerencia saludos
83
« en: Martes 13 de Julio de 2010, 16:36 »
Yo creo que el error esta en otro lado, muestranos algo de tu codigo para ayudarte...
saludos
84
« en: Sábado 10 de Julio de 2010, 17:45 »
Pero eso es para pasar entre formularios de Asp.net, yo lo que pretendo es entre winform's, segun entiendo los delegados son parecidos a los punteros a función de C++, ya entendi como se declaran y usan, pero no entiendo como lo puedo aplicar para pasar valores entre form's. Otro ejemplo que encontre es creando una interfaz, pero lei que la mejor forma es con delegados.
Gracias por tu tiempo
85
« en: Jueves 8 de Julio de 2010, 18:44 »
Hola a todos, alguien me puede proporcionar un ejemplo sencillo de como pasar una variable usando delegados entre formularios saludos
86
« en: Jueves 8 de Julio de 2010, 18:25 »
Hola espero ya hayas podido solucionar tu problema...
dgv.CurrentRow().Cells("celda de interes").Value;
saludos
87
« en: Jueves 8 de Julio de 2010, 18:05 »
Hola, si predefiniste las columnas en tiempo de diseño, cuando asignas null al datasource, dichas columnas se conservan, a menos que tu mismo las elimines ( .Columns.Clear(); ) se me hace raro que no te funcione.... Lo que puedes probar es eliminar solo los renglones del datasource, asi como comenta Carlos_Cor_CT, pero trabajando directamente sobre este: DataTable dt; dt = (DataTable)(((DataGridView)obj).DataSource); dt.Rows.Clear();
Saludos
88
« en: Miércoles 7 de Julio de 2010, 18:30 »
hola puedes conectarte a esa hoja de excel, y por medio de querys obtener lo que necesitas, te dejo un ejemplo sencillo para mostrarte como: System.Data.OleDb.OleDbConnection oleCon = new System.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0; data source=" + "C:\Libro1.xls" + "; Extended Properties=Excel 8.0;"); System.Data.OleDb.OleDbDataAdapter oleDa = new System.Data.OleDb.OleDbDataAdapter("SELECT * FROM [Hoja1$] WHERE campo1 BETWEEN #01/05/2010# AND #01/15/2010#", oleCon ); DataSet oDs = new DataSet (); oleDa.Fill(oDs); oleCon.Close();
si solo deseas buscar en un rango en lugar de toda la hoja ([Hoja1$]) indicas el rango [Hoja1$D1:L20], el calculo de las horas lo puedes hacer aparte Espero te sirva, saludos
89
« en: Viernes 2 de Julio de 2010, 20:09 »
Hola, 1.- cada vez que se activa el un checkbox haces la sumatoria de todos los que estan activados, por lo que no necesitas restar, solo que no uses la variable sumatoria como una global, o inicializala a cero antes de cada sumatoria. 2.- Para conocer si la celda se encuentra activada, usa la propiedad "value" que al igual que las otras celdas es la que guarda la información, en este caso el valor booleano 3.- Lo mejor sería preguntar si el clic se hizo sobre esa celda para hacer el ciclo unicamente cuando activas un checkbox y no cuando das clic en otras celdas; pregunta por "e.ColumnIndex" 4.- la forma de hacer tu sumatoria no se si es realmente lo que quieres ya que vuelves a sumar lo que ya tenias a lo que viene { double sumatoria = 0; foreach (DataGridViewRow row in dataGridView1.Rows) { bool chequeo = Convert.ToBoolean(row.Cells[5].Value ); //2.- if (chequeo) { sumatoria += Convert.ToDouble(row.Cells[4].Value); //4.- } } tbSumatoria.Text = Convert.ToString(sumatoria); //aqui se graba el total tbSumatoria.Text = (double.Parse(tbSumatoria.Text)).ToString("#,#.00"); }
5.- lo que le falta a este codigo es que el evento ocurre antes de que cambie el valor de la celda, por lo que no hara la suma de la ultima celda activada, para solucionar eso te dejo este link: http:\geeks.msblogsfernandezjaarchive2008 715datagridviewcheckboxcolumn-detectar-el-cambio-check-en-el-evento-cellvaluechanged.aspx saludos
90
« en: Jueves 1 de Julio de 2010, 19:45 »
ya encontre mi error, en un lugar de mi codigo grid2 se hacia nothing  lo de copiar el renglon si funciona
91
« en: Miércoles 30 de Junio de 2010, 19:18 »
Hola a todos, necesito ayuda con un par de Datagridview's, el caso es el siguiente, necesito copiar un renglon de uno a otro pero lo manejo de dos formas. El primer grid es para captura, el segundo optiene la informacion de una consulta, asi que paso del segundo al primero... cuando se trata de capturar un registro nuevo, creo un datatable y le configuro las columnas (en este caso si funciona pasar el renglon de uno a otro) pero cuando se trata de editar un registro, el primer grid igual obtiene la info de una consulta, pero ya no funciona el copiarle renglones lo hago de la siguiente forma (ya que de otras solo he obtenido excepciones) Dim row As DataRow = grid1.DataSource.NewRow() row(0) = grid2.CurrentRow().Cells("campo1").Value row(1) = grid2.CurrentRow().Cells("campo2").Value row(2) = grid2.CurrentRow().Cells("campo3").Value grid1.DataSource.Rows.Add(row)
de antemano gracias a todos
92
« en: Miércoles 30 de Junio de 2010, 18:24 »
Hola, cuando defines las columnas hay una propiedad en "Data" se llama "DataPropertyName" ahi va el nombre del campo que deseas mostrar en esa columna. Tambien existe una propiedad del datagridview: la pones a false, aunque creo que esta no es muy necesaria
dataGridView1.AutoGenerateColumns = false;
espero te sirva, saludos
93
« en: Viernes 18 de Junio de 2010, 20:08 »
Segun entiendo necesitas ver si el timer está activado:
if (timer1.Enabled) { ... }
saludos
94
« en: Jueves 17 de Junio de 2010, 16:49 »
Hola, tu problema está en el for for (i = 0; i <= Convert.ToInt32(listView_datos.Items.Count - 1); i++)
debería ser algo como esto:
for (i = 0; i <= Convert.ToInt32(listView_datos.SelectedItems.Count - 1); i++)
que solo recorrería los items seleccionados, solo ten en cuenta que al ir eliminando items seleccionados la propiedad Count ira cambiando y al final el ciclo puede no ser lo que deseas...
yo te recomiendo utilizar mejor el foreach()
espero te sirva mi sugerencia, saludos
95
« en: Miércoles 16 de Junio de 2010, 17:17 »
hola, el ancho de la columna lo puedes modificar de la siguiente forma: Excel.Range oRange = xlWorkSheet_1.get_Range("C1", "C1"); oRange.ColumnWidth = 14; // ó xlWorkSheet_1.get_Range("D1", "D1").ColumnWidth = 14;
saludos
96
« en: Martes 15 de Junio de 2010, 17:03 »
podrias poner parte de tu codigo? donde creas tu objeto de excel, tu hoja, para ver de que forma lo haces?.... la línea que te pase yo la uso muy amenudo en vb.net, (no se si sean corchetes en lugar de parentesis [] en C#)....
saludos
97
« en: Martes 15 de Junio de 2010, 02:24 »
hola no se si entendi bien tu problema, si necesitas guardar la imagen mostrada por el picturebox en una carpeta compartida, basta con usar el metodo save de la imagen: pictureBox1.Image.Save(@"\servidorrecurso_compartidonombreimagen.ext");
98
« en: Martes 15 de Junio de 2010, 02:15 »
Puedes recorrer los items y hacer la sumatoria de la tercera columna: double A = 0; foreach(ListViewItem I in listView1.Items) { A += double.Parse(I.SubItems[2].Text); } MessageBox.Show(A.ToString());
saludos
99
« en: Martes 15 de Junio de 2010, 02:04 »
hola, yo lo he logrado usando una cuenta de gmail, prueba este ejemplo y espero te sirva y lo puedas adaptar a tu cuenta de correo System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage(); msg.To.Add("correo@destino.com"); //<--- destino msg .From = new MailAddress ("correo@gmail.com", "Nombre a mostrar del remitente", System.Text.Encoding.UTF8); //origen msg.Subject = "Asunto"; msg.SubjectEncoding = System.Text.Encoding.UTF8; msg.Body = "Mail de prueba"; msg.BodyEncoding = System.Text.Encoding.UTF8; msg.IsBodyHtml = false; //Aquí es donde se hace lo especial para gmail SmtpClient client = new SmtpClient (); client .Credentials = new System.Net.NetworkCredential("correo@gmail.com", "Tu_Contraseña_De_Gmail"); // el correo es el mismo que el anterior, y tu contraseña tiene que ser la de esa cuenta client.Port = 587; client.Host = "smtp.gmail.com"; client.EnableSsl = true; //Esto es para que vaya a través de SSL que es obligatorio con GMail try { client.Send(msg); } catch (Exception ex) { MessageBox.Show(ex.Message); }
Este ejemplo lo probe antes de postearlo y funcinó correctamente, pero como te dije antes, para una cuenta de gmail saludos
100
« en: Martes 15 de Junio de 2010, 01:25 »
prueba con esto: xlWorkSheet.Range("D1").EntireColumn.ColumnWidth = 100;
saludos
|
|
|