PREGUNTAS CONTESTADAS -

 Hay un total de 95 Preguntas.<<  >> 

    Pregunta:  62974 - LEVANTAR IMAGENES DESDE UNA BD Y MOSTRARLA EN UN REPORTE
Autor:  cristhian arbelo
Hola, tengo una bd en Sql server 2005 con nombres de personas y campos con rutas de archivos, quiero hacer un informe de Crystal Report pero las imágenes no me las muestra, veo los demás campos pero el de la imagen solo veo la ruta del archivo, probé pasarlas a un arreglo bytes (que según he leído un Crystal report`s solo las muestra en Binarios) pero en el campo imagen me muestra el nombre del arreglo no la imagen. Si alguien consigue darme una mano estoy agradecido.
Gracias.
  Respuesta:  Danae Skalari
hola tal vez estes pásando en tu reporte esas fotos como cadena y por eso no te muestra la imagen sino la ruta prueba ese campo de la imagen ponla como un campo blob y en un tu dataset poner el tipo de dato System.Byte[]

    Pregunta:  63014 - CERRAR FORMULARIOS
Autor:  Aquiles B.
Buen dia, tengo un pequeño problema que quiza no sea muy complicado pero no lo he podido resolver

Tengo una aplicacion para windows en VS2008 y C# la cual tiene 2 formularios, y de uno paso al siguiente de esta forma

Form2 SigForm = new Form2();
SigForm.Show();

Lo que quiero es que al hacer eso, el primer formulario ya no sea visible, es mas, que se cierre y que solo se vea el segundo

Mi problema tambien es que al momento de depurar mi programa, si yo cierro mi formulario al hacer click en la "X" o con codigo this.Close(); no se cierra del todo sino que lo sigue depurando el VS2008

Alguna idea de como resolverlo?

De antemano gracias
  Respuesta:  Jose Amilcar Sauceda Reyes
Para que ya no siga apareciendo tenes que utilizar la siguiente funcion:

form2.Dispose();

Esta funcion termina del todo la utilizacion de un objeto y ya no sigue apareciendo en memoria. Tambien puedes ver el objeto disposed.

    Pregunta:  63050 - CREAR EJECUTABLE LIBRE DE DEPENDENCIAS EN VISUAL STUDIO C#
Autor:  Juan Andres Centelles Diez
Existe una manera de crear un ejecutable libre de dependencias al cual pueda ejecutar en cualquier PC aunque no tenga instalado el Framework de .Net ?
  Respuesta:  Carlos Serrano
Colega, busca en la Web lo relacionado con Xenocode Postbuild, eso es lo que necesitas.

Para mas información contacta conmigo.

    Pregunta:  63070 - CONECTAR BD ACCES DESDE C# EN MODO CONSOLA
Autor:  Germán M.
Hola gente. feliz año 2010.

Estoy haciendo una aplicación en c# modo consola, codigo, nombre apellidos, tel. etc etc. Pero ahora tengo el problema que no se como conectar la base de datos access y mucho menos como enviar los datos capturados en la consola . si me pueden echar una mano. muchas gracias. soy "novatillo" en c#.
  Respuesta:  Germán Murcia
Hola a todos, Ya encontre la forma de conectarme a una base de datos access 2003

PARA ENVIAR DATOS:

en cualquiera de los casos debe agregar la siguiente linea para conectarnos por OleDb

using System.Data.OleDb;

//hacemos la conexión por OleDb

OleDbConnection con = new OleDbConnection();
con.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:misdatoscolegio.mdb";
con.Open();

//el signo @ se utiliza para que reconozca las barras invertidas

//insertamos las variables

string q = "insert into estudiantes(curso,codigo,nombres,apellidos,telefono) values(@curso,@codigo,@nombres,@apellidos,@telefonos)";

OleDbCommand ORDEN;

ORDEN = new OleDbCommand(q, con);


ORDEN.Parameters.Add(new OleDbParameter("@curso", OleDbType.VarWChar, 4));// indica la cantidad de caracteres que ingresa
ORDEN.Parameters["@curso"].Value =curso;
ORDEN.Parameters.Add(new OleDbParameter("@codigo", OleDbType.VarWChar, 2));
ORDEN.Parameters["@codigo"].Value = codigo;
ORDEN.Parameters.Add(new OleDbParameter("@nombres", OleDbType.VarWChar, 20));
ORDEN.Parameters["@nombres"].Value = nombres;
ORDEN.Parameters.Add(new OleDbParameter("@apellidos", OleDbType.VarWChar, 20));
ORDEN.Parameters["@apellidos"].Value = apellidos ;
ORDEN.Parameters.Add(new OleDbParameter("@telefono", OleDbType.VarWChar, 10));
ORDEN.Parameters["@telefono"].Value = telefonos ;
ORDEN.Connection.Open();
ORDEN.ExecuteNonQuery();
ORDEN.Connection.Close();

*******************************************

PARA HACER UNA CONSULTA:

OleDbConnection con = new OleDbConnection();
con.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:misdatoscolegio.mdb";
con.Open();

System.Console.WriteLine("apellido a buscar:");
apellidos = System.Console.ReadLine();
Console.ReadLine();

string buscar = "SELECT * FROM estudiantes WHERE apellidos = '" + apellidos + "'";

OleDbCommand commando = new OleDbCommand(buscar, con);
System.Data.OleDb.OleDbDataReader concedula = commando.ExecuteReader();

int sw = 0;
while (concedula.Read())
{
sw = 1;
Console.WriteLine("curso : " + concedula.GetInt32(0));
Console.WriteLine("codigo : " + concedula.GetInt32(1));
Console.WriteLine("nombres : " + concedula.GetString(2));
Console.WriteLine("apellidos : " + concedula.GetString(3));
Console.WriteLine("telefono : " + concedula.GetInt32(4));
Console.ReadLine();
// Algo que aprendi aqui es que los valores que estan entre parentesis en la parte derecha conrresponde al orden de los campos en la tabla de access. en mi caso el orden es curso,codigo,nombres,apellidos,telefonos

}
if (sw == 0)
{
Console.WriteLine("nombre no existe");
Console.ReadLine();
}
concedula.Close();
con.Close();

*********************************************************
LES DEJO UNA CONSULTA ATRAVES DE INNER JOIN

es bastante util cuando se quiere mostrar información de dos tablas.

//Nos conectamos y abrimos la base de datos (ya lo explique arriba)

luego:
string buscar = "select * from estudiantes inner join periodos ON estudiantes.codigo=periodos.codigo";

// despues del from viene la primera tabla
// despues del inner join viene la segunda tabla
// despues del ON viene la relacion entre las dos tablas. que campos deben coincidir de cada tabla. en mi caso codigo. es fundamental que en ambas tablas esten los campos de coincidencia.

//ahora

OleDbCommand commando = new OleDbCommand(buscar, con);
System.Data.OleDb.OleDbDataReader concedula = commando.ExecuteReader();

while (concedula.Read())
{
sw = 1;
Console.WriteLine(" CURSO..............: " + concedula.GetInt32(0));
Console.WriteLine(" CODIGO.............: " + concedula.GetInt32(1));
Console.WriteLine(" NOMBRES............: " + concedula.GetString(2));
Console.WriteLine(" APELLIDOS..........: " + concedula.GetString(3));
Console.WriteLine(" TELEFONO...........: " + concedula.GetInt32(4));
Console.WriteLine(" PERIODO............: " + concedula.GetInt32(7));
Console.WriteLine(" NOTA...............: " + concedula.GetInt32(8));
Console.WriteLine(" TRABAJO REALIZADO..: " + concedula.GetString(9));

//la informacion la tengo un poco formateada para la presentación
// si el valor que recoge es string entonces seria .GetString, si es numerico entonces GetInt32

//recuerdan el orden de los campos en la tabla de access?
bueno. funciona lo mismo. explico
primero toma los campos de la tabla estudiantes y muestro las columnas que quiero, en este caso son (0,1,2,3,4) luego las columnas de la tabla periodos y muestro los campos (7,8,9), notaron que no estan 5 y 6, precisamente porque usted puede mostrar las columnas que quiera. en mi caso 5 y 6 vovian a hacer curso y codigo.

Nota: 5y6 corresponden a primera y segunda columna de la tabla peridos. por tanto no se vuelve a colocar (0,1,2 etc).

Console.WriteLine(" ===================================================");
Console.ReadLine();

}
if (sw == 0)
{
Console.WriteLine("No hay datos para leer");
Console.ReadLine();
}
concedula.Close();
con.Close();

Espero que haya valido la pena .

    Pregunta:  63072 - CODIGO PARA COMUNICACION ENTRE 2 APLICACIONES
Autor:  Alexander Rocha
Estoy aprendiendo a usar Visual Studio 2005, introduciendome en el mundo .net.
Elegí C#.....
entonces, me han pedido en la pega (para comenzar a aprender) que tenga 2 aplicaciones, cada una con 1 socket virtual, y que logre que la primera aplicacion le envie un string a la segunda, y viceversa....como hago eso?
Como comienzo a programar, necesito un empujoncito por favor.
  Respuesta:  Red de la Cruz Polanco
bueno en Principio es un poco dificil pero no lo es:

1-

Esta es una manera un poco "Chusquera" pero funciona.
Tendras Dos Aplicaciones Programas de manera diferente (Eso me imagino).
en la Primera(0.1) Programaras Un Timer (que buscara un String en un archivo de texto que Crearas con la segunda aplicacion(0.2) cuando le envies el string.

La Aplicacion 0.1 buscara periodicamente el string en el archivo de texto que creara la aplicacion 0.2 De este modo podras recibir el string. Existe otro modo que es guardandolo en memoria, pero eso no lo tengo a mano y estoy en el trabajo.

Por el momento es lo que tengo. Ojala y te ayude mi respuesta.

    Pregunta:  63093 - DETENER REPRODUCCION DE CONTROL AXWINDOWSMEDAPLAYER
Autor:  Aquiles B.V
Vale pues esta es mi segunda pregunta que hago.

Estoy haciendo una aplicacion que incluye un control Windows Media, pueden agregarse varios videos y sus nombres aparecen en una lista, y esta lista tiene un menu contextual que tiene opcienes para reproducir el video seleccionado o quitarlo.

Al reproducir el video no tengo ningun problema, lo que sucede cuando quiero eliminar es:

//elimino el video de la lista
listbox1.Items.Remove(listbox1.Selectedtem);

//quito la referencia del control windows media
axWindowsMediaPlayer.URL="";

al hacer esto se supone que el video debe detenerse y ya no reproducirse, pero si le doy click al boton "Reproducir" del control Windows Media. Reproduce el video del cualque se supone ya no deberia tener la ruta de acceso al mismo.

y ya intente de muchas maneras y no logro hacer que una vez eliminado el video de la lista, al hacer click en el boton reproducir, no se reproduzca nada.

Agradezco de antemano su colaboracion
  Respuesta:  Aquiles B.V
A mi mismo respondo esta pregunta, la solucion a ese problema era muy sencilla.

Resulta que efectivamente, al quitar un video al reproductor de windows media con la siguiente linea de codigo

axWindowsMediaPlayer.URL="";

detiene la reproduccion del video, pero por 'X' Razon sigue conservando la ruta de acceso al archivo, por lo que al darle "play" vuelve a reproducir el video que supuestamene fue eliminado

Y la solucion es simple, una vez que la ruta del video se vuelve "" lo mejor es deshabilitar el boton "play" y de esta manera no se puede dar click al boton para reproducir el video eliminado.

La respuesta es que a la linea anterior de codigo, la linea que le sigue es

axWindowsMediaPlayer.CtlsEnabled=false;

o algo asi se llama la propiedad que deshabilita los controles XD

claro que cuando quieran reproducir un video tienen que habilitar los controles para poder darle click al boton reproducir, lo que es con esta linea de codigo

axWindowsMediaPlayer.CtlsEnabled=true;

Vale pues eso es todo :P

    Pregunta:  63112 - ERROR EN SENTENCIA UPDATE DE OLEDB Y ACCESS 2003
Autor:  Aquiles B.V
Vale aqui siguiendo con un par de preguntas para ver quien puede ayudarme.

Lo que pasa es que tengo mi aplicacion con conectividad a una base de datos access 2003, "BD.mdb"

necesito actualizar unos campos de una tabla de esta base de datos, por ejemplo tabla usuarios

la instruccion para actualizar si no me equivoco es por ejemplo algo asi:

string consulta="Update tabla_usuarios set password='contraseña', pregunta='nueva pregunta', respuesta='nuevarespuesta' where id_usuario='usuario2'";

Estoy usando una variable de conexion llamada "con" Oledb configurada de la siguiente manera

con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:BD.mdb");
con.Open();

He verificado todo: "tipo de datos, nombre correcto de la tabla, nombre correcto de los campos... etc"

tengo un OleDbCommand "comando" al cual le asigno lo siguiente
comando=new OleDbCommand(consulta, con);
if(comando.ExecuteNonQuery()>0)
{
//mensaje - "Se acutalizaron los datos";
}

y me marca un error de sintaxis en la sentencia UPDATE

Ahora hice una pequeña prueba para que solo actualice un campo, lo cual me fue totalmente permitido, quedando asi mi instruccion

string consulta="Update tabla_usuarios set password='contraseña' where id_usuario='usuario2'";

Entonces que hay de malo en mi consulta anterior?

Ya que necesitaria crear entonces muchos OleDbComand para actualizar, y eso no es muy efectivo para los programadores

Como dato: "Estoy usando Visual Studio 2008 Professional, Access 2007, Expression Studio 3(que no creo que tenga algo que ver), y Windows 7.

Si tienen alguna idea de que es lo que me puede estar causando conflicto se los agradecere

De antemano gracias

XD
  Respuesta:  AQUILES B.V
HOLA ME CONTESTO DE NUEVA CUENTA A MI MISMO MI PROPIA PREGUNTA SOLO PARA COMENTARLES UN PEQUEÑO ERROR INSIGNIFICANTE QUE COMO PROGRAMADOR ES MUY CHAFA HABERLO OLVIDADO

BUENO LES EXPLICO QUE ESTUVE HACIENDO PRUEBAS CON MI CODIGO ANTERIOR, HABIA DICHO QUE SERIA MOLESTO CREAR MUCHOS OleDbCommand PARA ACTUALIZAR MI TABLA, PERO LO HICE, CADA UNO DE LOS CAMPO ME LOS ACTUALIZO SIN PROBLEMA A EXCEPCION DE UNO... EL CAMPO "PASSWORD"

POR LO QUE RECORDE QUE PARA ACCESS, "PASSWORD" ES UNA PALABRA RESERVADA, ASI QUE SOLO LE CAMBIE EL NOMBRE A MI CAMPO Y TODO SALIO SIN PROBLEMAS XD

BUENO ESO ES TODO... POR AHORA!!!

    Pregunta:  63229 - CALCULAR DERIVADA EN C#
Autor:  Anel Fernandez Rodriguez
Hola, estoy tratando de buscar algun algorimo que me permita determinar la derivada de una funcion cualquiera en C# y no he encontrado ningun resultado en la web, si alguno de ustedes conecen de algo que me pueda ayudar, se lo agradeceré. Quizas exista algun componente de matlab que facilite esta opcion, pero no conosco sobre el tema.

Gracias de ante mano!
  Respuesta:  Jose Garcia
Te aconsejo que busques la tabla de derivadas, despues el resto es crear metodos simples que resuelvan tu cálculo (en este caso de derivadas).

Deberían poder ingresarse variables de tipo DECIMAL al igual que el retorno.

Por otra parte te pediría que seas más específico/a, para tener noción de que es lo que realmente necesitas.

Si buscas como calcular una derivada en C#, es porque evidentemente sabes programar en tal lenguaje, entonces bueno agarra la tabla de derivadas y tomate el tiempo de desarrollarlo.

    Pregunta:  63257 - CONSULTA CON ERROR EN C# CON ORACLE AL INSERTAR UNA IMAGEN
Autor:  Panxo Panxo
Consulta:
Tengo un formulario donde se ingresa una imagen y datos de un producto, al ingresarlo este producto ingresa en 3 tablas por diferentes procedimientos almacenados. para ello trabajo en querys transaccionales (si una falla no hará nada aunque haya ingresado en una tabla anteriormente)

Ahora, al ingresar los datos con la imágen nula, me ingresa perfectamente, pero al agregarle una imagen (de pequeña resolucion) y al ingresar el producto me da error...

Estoy trabajando con Oracle (blob el campo de la imagen) y con c#

alguno sabria explicar por que pasaria eso?

tengo esto:
ok, este petenece al formulario y es cuando ingresa la imagen a la entidad
ENTIDAD = new ENTIDAD();
[codigo]
ENTIDAD.imagen = grabaImagen((Bitmap)pbxFoto.Image);
[/codigo]

ahora en la capa acceso de datos al utilizar el Procedimiento Almacenado y utilizando un campo DateTable llamado tabla y oracleparameter p

[codigo]
p[x] = new OracleParameter("param_imagen_producto", OracleType.Blob);
p[x].Value = ENTIDAD.Imagen_producto;
p[x].Direction = ParameterDirection.InputOutput;

p[x] = new OracleParameter("param_salida", OracleType.Cursor);
p[x].Direction = ParameterDirection.Output;


AccesoDatos = new clsADAccesoDatosOracle();
AccesoDatos.IniciaTran();
tabla = AccesoDatos.EjecutaQueryOracleTran("PKG_P.pa_insertaproducto", p);
[/codigo]

el catch me trae este mensaje: "Referencia a objeto no establecida como instancia de un objeto."

Ahota si ejecuto el IniciaTran() abajo de tabla, corre perfectamente sin errores, pero lo malo es que si algún procedimiento que sigue es erroneo (y se ejecutan de la misma manera) no realizarán ningún commit y solo quedara ingresado por el primer Procedimiento

la imagen está ingresando en byte[], pero la cosa es que cuando inicio el trans esos registros que estoy guardando quedan "flotando" hasta que se realize el commit que eso pasa en el último procedimiento que se realiza dentro de la capa de acceso de datos, para que no ingrese los registros en las tablas inmediatamente por seguridad por si llegase a fallar uno de los otros procedimientos. porque si yo hiciera esto...
(pusiera debajo de la ejecución del procedimiento el trans)

[codigo]

AccesoDatos = new clsADAccesoDatosOracle();

tabla = AccesoDatos.EjecutaQueryOracleTran("PKG_P.pa_insertaproducto", p);

AccesoDatos.IniciaTran();

[/codigo]

no me tira ningún error e ingresa la imagen en la tabla de la entidad... pero lo malo es que si llegase a fallar uno de los otros procedimientos, no insertará en las demas tablas y solo insertara en la tabla de la entidad de producto.

Ese es el problema :(
intenté dejar la imagen estatica, pero tampoco sirve :(
(el trans la destruye por asi decirlo)
  Respuesta:  Charles Rock
pues ese error tiene que ver es con la forma en la defines los objetos y los usas, no le veo relación con el proceso que realizar con la imagen al enviarla a la base de datos. si especificaras mas donde te sale el error tal vez te podría ayudar.

    Pregunta:  63399 - CAPTURA DE SEÑALES WIFI MEDIANTE PROGRAMACIÓN C#
Autor:  Javier Berenguer
Hola, estoy desarrollando una aplicación en la que necesito tener acceso a los datos que proporciona una tarjeta/adaptador WiFi, tales como SSID de las redes detectadas, nivel de RSSI de cada una de ellas, etc. Al parecer, por lo que he estado investigando, la forma de hacerlo es usando la API de Windows "Native WiFi". El problema es que no sé cómo usarla, como acceder a ella con C#, qué variables y métodos definir, etc. He encontrado varios códigos por ahí pero todos o bien están protegidos o bien son bastante complejos de entender para incorporar a mi aplicación.

Por favor, me gustaría que alguien me proporcionase algún código claro o instrucciones concisas sobre cómo tratar este tema. Si existe algún otro método de hacer esto sin utilizar la API de Windows también estoy abierto a todo tipo de soluciones.

Me urge bastante así que agradecería cualquier respuesta por favor.

Muchas gracias y un saludo a tod@s.
  Respuesta:  Juan Lombana
Verifica si con WMI lo puedes hacer, la documentación del WMI y como acceder a el desde .net la encuentras en el MSDN.

|<  <<  1 2 3 4 5 6 7 8 9 10  >>  >|