• Martes 20 de Octubre de 2020, 21:24

Mostrar Mensajes

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 - eltruhanero

Páginas: 1 2 [3] 4
51
C# / Re: Agregar una fila a un DataGridView de un DataSet
« en: Sábado 20 de Marzo de 2010, 05:43 »
Hola, el DataGridView tiene una propiedad DataSource a la cual le podes setear un origen de datos,por ejemplo una DataTable.

Fiajte:
http://msdn.microsoft.com/en-us/library ... ource.aspx
http://msdn.microsoft.com/en-us/library/fbk67b6z.aspx

Resulta complicado si solo tenes que desplegar ciertas celdas o no desplegar ciertas celdas...a menos que todas esas celdas se correspondan con una columna especifica  :P

Para agregar datos a un datagridview siempre trata de usar DataSource en vez de agregar como mostras en el codigo.

Saludos, Daniel.

52
C# / Re: Duda general sobre planteamiento de proyecto
« en: Sábado 20 de Marzo de 2010, 05:24 »
A veces es preferible NO usar DataSet y a veces si, dependerá de cada aplicación.

Si tu aplicación interactua de forma muy pesada (insertando, eliminando, actualizando) con la base de datos, comunicarte a travez de un DataAdapter aumenta tu performance de comunicación. Mira: http://msdn.microsoft.com/es-es/library ... 80%29.aspx

Lo que vos estas haciendo es recodificar todo lo que el framework ya te provee. En una aplicación c# tipo no tenes limitaciones de memoria serias a tener en cuenta...primero que nada porque la maquina tiene que aguantar el framework. Tampoco veas los DataSet/DataTable como un cancer de programación, son muy buenas estructuras para los datos(la clase DataTable tiene 6000 lineas de codigo!), solo depende de que vos les des un buen uso y no un abuso.

Si aun así no queres usar DataTables ni DataSet podrías usar en vez de DataAdapter un DataReader y a medida que lees los datos irlos guardando en un Hashtable por clave de tabla o como te parezca.
Si tenes alguna limitacion particular de la aplicación me parece bien...sino "No reinventes la rueda!!" y mucho menos en cada aplicación que desarrolles..

53
C# / Re: Uso de clases y base de datos
« en: Sábado 20 de Marzo de 2010, 05:22 »
Mira permiteme que te sugiera algo, y si ya lo tenes hecho o lo descartastes por alguna razon no te ofendas.

Me imagino que las clases Factura y Detalle las usas en tu logica de negocio.

Yo crearía una capa llamada DataAccess o "Acceso a datos" en la cual consentro todo el acceso a datos, agregando una Facade para acceder al mismo.
Haciendo por ejemplo DataAccessFacade.Instance.Save(Factura fac, Detalle[] det), o si desde Factura podes acceder a los Detalle[]. Entonces quizas no debas pasar tambien los Detalles.


Adentro el save podes hacer algo por el estilo:
Código: C#
  1.  
  2. Save(Factura fac, Detalle[] det)
  3. {
  4.       SqlConnection conn = new SqlConnection("conexion");
  5.       SqlTransaction trans = conn.BeginTransaction();
  6.  
  7.       try
  8.       {
  9.             GuardarFactura(factura, trans); // Usa la trans para guardar con los cmd
  10.  
  11.             foreach (det in Detalle in Factura.Detalles)
  12.             {
  13.                   GuardarDetalle(det, trans);  // Usa la trans para guardar con los cmd
  14.             }
  15.             trans.Commit();
  16.       }
  17.       catch(Exception ex)
  18.       {
  19.              Log(ex);
  20.              Rollback
  21.       }
  22. }
  23.  
  24.  
De esta forma centralizas desde donde guardas tus objetos de negocio... si esta estructura no te es posible quizas puedas compartir tu transaccion entre los distintos Guardar de los distintos objectos Factura y Detalle...pero me parece una solucion un poco sucia...

Que opina el resto del foro?

Saludos, Daniel.

54
C# / Re: Duda general sobre planteamiento de proyecto
« en: Viernes 19 de Marzo de 2010, 22:19 »
Honestamente e leido un par de veces tu pregunta/codigo y no te entiendo exactamente de que parte os gustaría mi opinion.

Queres levantar los datos en DataSet a tavez de un DataAdapter y despues  insertar esos datos en un HashTable (por un tema de performance en la forma en la que se usan esos datos x ejemplo) ?

Si pudieras aclara tu duda, gracias.
Daniel.

55
C# / Re: cargar tabla en combobox
« en: Viernes 19 de Marzo de 2010, 21:54 »
Hola, preferiría hicieras las consultas publicamente en los foros, para así poder ayudar a quien en el futuro tenga la misma consulta.

No te preocupes siempre va a haber gente que quiera ayudar en los foros!

Saludos! Daniel

56
C# / Re: Consulta SQL y C#
« en: Viernes 19 de Marzo de 2010, 21:46 »
Hola, por el lado de resultados es lo mismo.

Lo primero que se me ocurre es que te inyecten codigo sql: http://es.wikipedia.org/wiki/Inyecci%C3%B3n_SQL
Por eso siempre es preferible usar SqlParameter.

Ademas de que si precisas cambiar la cadena "SELECT...." tendrías que recompilar el codigo...bueno a menos que la pongas en algun archivo de configuracion aunque no me parece adecuado.

Por el lado de performance me imagino es igual.

Saludos! Daniel.

57
C# / Re: Consulta SQL y C#
« en: Viernes 19 de Marzo de 2010, 20:20 »
Hola no lo compile pero seria algo así:

Código: C#
  1.  
  2. public DataSet Consulta()
  3.         {
  4.             DataSet ds = new DataSet();
  5.             string connectionString = "";
  6.             SqlConnection conn = new SqlConnection(connectionString);
  7.             conn.Open();
  8.  
  9.             SqlCommand cmd = new SqlCommand("sp_Consulta_Personal",conn);
  10.             cmd.CommandType = CommandType.StoredProcedure;
  11.             cmd.Parameters.AddWithValue("nombre_parametro","valor_parametro");
  12.  
  13.             SqlDataAdapter Da = new SqlDataAdapter(cmd);
  14.             Da.Fill(ds, "T_Personal");
  15.  
  16.             return ds;
  17.         }
  18.  
  19.  

58
C# / Re: Cambiar entre textbox al pulsar enter
« en: Jueves 18 de Marzo de 2010, 02:01 »
Lo que se me ocurre es obtener por Reflection los textBox definidos en el Form y  aplicar el Focus al que corresponda.

Para setear el recorrido del focus al apretar "Enter" podrias usar TextBox.TabIndex.

O sea si estas en el textBox que tiene seteado TabIndex = x, buscas el que tenga seteado TabIndexx+1 y a ese aplicas el Focus.

Se entiende?

Daniel.

59
C# / Re: cargar tabla en combobox
« en: Jueves 18 de Marzo de 2010, 01:51 »
Eso fue lo que te respondi, SelectedValue te devuelve la instancia del "ValueMember object " actualmente seleccionado en el combobox.

Probast el codigo?

Daniel.

60
C# / Re: Threads y Textbox
« en: Jueves 18 de Marzo de 2010, 01:43 »
Si tu problema es al interactuar desde un hilo A con un form F creado en un hilo B, eso lo podes usar haciendo uso del metodo Control.Invoke(Delegate) sobre el control TextBox.

Te copio un ejemplo que tengo, ta probado:

Citar
public static class Program
{
        public static void Main()
        {
            SendMailForm form = new SendMailForm();
            new Thread(ChangeText).Start(form);
            Application.Run(form);
        }

        private static void ChangeText(object formObj)
        {
            SendMailForm form = (SendMailForm) formObj;
         
            Delegate del = GetDelegate();

            form.Invoke(del, form, "texto a setear sobre el campo txtBody del form SendMailForm");
        }

        private static Delegate GetDelegate()
        {
               MethodInfo method = typeof(Program).GetMethod("ChangeTextBox");
               return Delegate.CreateDelegate(typeof (ChangeTextDel), method);
        }
}

Eso suponiendo que tu form se llama SendMailForm y el textBox textBody, y el SendMailForm tendria:
Citar
       public delegate void ChangeTextDel(SendMailForm f, string text);
        public static void ChangeTextBox(SendMailForm f, string text)
        {
            f.txtBody.Text = text;
        }

61
C# / Re: Duda general sobre planteamiento de proyecto
« en: Jueves 18 de Marzo de 2010, 01:14 »
Hola...google y lei el comentario completo que comentar y en sí tiene razon. Te queda una aplicación con menos lineas de codigo y que en ejecución consume menos memoria. Pero todo el codigo necesario para cargar esas listas tenes que codificarlo ( a menos que te pongas en campaña de programar una library generica que puedas usar en distintos proyectos) y testearlo( cosa que no es necesario con el codigo generado con el wizard). Ademas de que con los dataset  podes hacer un chequeo de tipos antes de bajar a la base de datos, puesto que el wizard te puede generar data sets tipados segun las tablas de la bbdd.
Todo tiene sus ventajas y desventajas...

Con los ojos cerrados elijo usar DataSet...si tengo restricciones/requerimientos a tener en cuenta empiezo a pensar alternativas...

Si usas la version 3.5 de .net podrias tambien usar LINQ to SQL con el cual te creas un "DataContext" con el que trabajas de manera similar a los DataSets.
No tengo muchos elementos para opinar acerca de LINQ to SQL puesto que solo lo e usado en un projecto, pero me parece es mas util para cuando precisas manipular(join, merge, etc) bastante los datos en tu aplicacion.

Citar
Que usas un datareader para rellanar los collection?
Me imagino que deberia de usar un dataReader...puesto que los TableAdapter solo rellenan DataTable, DataRow[] or DataSets.
Si precisas cargar muuuchos datos un TableAdapter es mas eficiente(rapido) que un DataReader, pero levanta todos los datos de una y consume memoria.

62
C# / Re: cargar tabla en combobox
« en: Martes 16 de Marzo de 2010, 01:00 »
a ver si te entendi bien...queres obtener del combobox el ValueMember actualmente seleccionado?

Eso lo obtenes con la propiedad SelectedValue del combobox:

Código: C#
  1. textBox1.Text = comboBox1.SelectedValue.ToString();
  2.  

Igual me parece que antes de preguntar cosas simples esta bueno que investigues por tu lado.

Va con buena onda, a veces hasta las cosas mas simples cuesta tiempo descubrirlas.
Daniel.

63
C# / Re: Duda general sobre planteamiento de proyecto
« en: Martes 16 de Marzo de 2010, 00:43 »
Hola disculpa mi ignorancia pero no me doy cuenta a que te refieres con: "en el grid de detalle en sql ce no me guarda el id del maestro".
Id maestro te referis al id auto-generado de la tabla?

Citar
Es decir, en un dataset he de tener toda la relación completa de todas las tablas de la bbdd?
  • Todo datos que levantes desde la base de datos y quieras mantener en memoria ocupa espacio...y en algun par de meses/años de produccion de la aplicacion puede que las tablas tengan 40000/50000 registros y levantar eso puede degradar demaciado tanto la aplicacion como la maquina misma. Te cuento esto por experiencia porque ahora estamos rediseñando una aplicacion que debido a que levantaban todos los datos al principio hoy en dia la aplicacion es inmanejable debido al peso de la base de datos.
  • Ademas si la base de datos es accesible desde otras computadoras en red, los datos que levantes a un DataSets no son "datos vivos", puesto que otras maquinas conectadas en red con la base de datos no ven los cambios que hagas sobre datos que mantenes en memoria, pudiendo esto generar inconsistencias en los datos(y mientras mas datos mantengas en memoria, mas inconsistencias podes llegar a tener...)

El DataSet miralo como un cache de datos consistentes (tene en cuenta que podes agregar restricciones a los datos) de la base de datos.
Levantar datos demora, y mantenerlos en memoria ocupa espacio. Tenes que lograr el equilibro entre velocidad-espacio. Podrías permitirte encarar el diseño teniendo en cuenta de que la aplicacion hoy mantenga los datos en memoria (suponiendo que la aplicacion no genera muchos datos muy rapido, para incrementar la velocidad de acceso a la bd), para luego rediseñar ( en caso de que sea necesario ) y mantener en memoria la menor cantidad de datos posibles (enlenteciendo la aplicacion con los accesso a la bd pero logrando que consuma menor memoria).

Citar
por ejemplo....mi duda tambien es la estructura de proyecto dentro de visual studio, ¿como generar lo datasets tipados? etc.

Los datasets tipados te los genera automaticamente un wizard de visual studio, tenes que proporcionarle la conexion a la base de datos y las tablas que queres si no recuerdo mal...

Citar
Nuevamente mil gracias, y si tendrías un ejemplo de la estructura con la que implementas me ayudaría mucho. si no es mucho pedir, claro está.

Si pudieras brindarme una idea de los requerimientos que tenes trato de pensar un diseño y hacerte llegar un "boceto" de como lo encararía...pero ojo, como te puse en el primer post "no me considero el mas apropiado para responder tu pregunta, pero viendo que nadie responde trato de contribuir con mi pequeño aporte".

Estoy suponiendo tu aplicación hace un uso intensivo de la base de datos, aunque quizas tu aplicación mantiene datos staticos en la base de datos y se limita a procesarlos. Por eso, me resulta medio dificil decirte "mira este diseño te va a quedar al pelo" pues ni siquiera se que tecnologias .net usas.

Sin embargo en casi toda aplicación podes reconocer dos/tres capas: capa de acceso a base de datos(DAL-DataAccessLayer), capa de negocio/ procesamiento de datos (BL - BusinessLayer) y capa de interfaz(GUIL - GraficUserInterfaceLayer).
DAL: todo lo que tenga que ver con el acceso a datos(DataSet, TableAdapter,...) y las herramientas necesarias para accederlas desde otra capa(Factory, Facade, . . . ).
BL: bueno el nombre lo dice, para presentar los datos en la interfaz precisas procesarlos / analizarlos y demas... Aca agregas toda la logica necesaria para hacer eso...y ademas las "herramientas" necesarias para accederlas desde otra capa.
GUIL: las clases necesarias para mostrar los datos procesados al usuario(windows forms y demas).

Podes ademas optar por tener otra capa para almacenar las configuraciones que tu aplicacion requiera...

Bueno espero haber respondido al menos en parte tus dudas...y que ademas no sean demaciado trivial mis respuestas.
Cualquier cosa postea nuevamente o haceme llegar parte de tus requierimientos para poder opinar con mejores argumentos  :)
Saludos, Daniel.

64
C# / Re: cargar tabla en combobox
« en: Lunes 15 de Marzo de 2010, 17:49 »
HOLA!

Bueno prove tu codigo con una tabla mia y anduvo.

Te pego el codigo:

Código: C#
  1.  
  2. private void Form1_Load(object sender, EventArgs e)
  3.         {
  4.             using (SqlConnection sc = new SqlConnection())
  5.             {
  6.                 sc.ConnectionString = @"Data Source=DANIELSQLEXPRESS;Initial Catalog=CloudNews;Integrated Security=True";
  7.                 sc.Open();
  8.                 const string cmd = "SELECT [name],[PartitionKey] From tableChannel";
  9.                 using (SqlDataAdapter sda = new SqlDataAdapter(cmd, sc))
  10.                 {
  11.                     DataTable dt = new DataTable();
  12.                     sda.Fill(dt);
  13.                     comboBox1.ValueMember = "name";
  14.                     comboBox1.DisplayMember = "PartitionKey";
  15.                     comboBox1.DataSource = dt;
  16.                 }
  17.             }
  18.         }
  19.  
  20.  

Y la base de datos CloudNews tiene una tabla tablaChannel que entre otras columnas tiene las dos que sito en el sql ("name" y PartitionKey").

Probablemnte estes errandole a los nombre de las columnas o algo por el estilo...
Cualquier cosa postea de nuevo ...
Saludos, Daniel.

65
C# / Re: polimorfismo
« en: Lunes 15 de Marzo de 2010, 17:24 »
Hay muchiiiiiiiiiiiiiiiisima informacion just google it!! :D

Te dejo 2 links:

http://msdn.microsoft.com/es-es/library ... 80%29.aspx

http://msdn.microsoft.com/es-es/library/ms173152.aspx

66
C# / Re: Duda general sobre planteamiento de proyecto
« en: Lunes 15 de Marzo de 2010, 17:12 »
Bueno no me considero el mas apropiado para responder tu pregunta, pero viendo que nadie responde trato de contribuir con mi pequeño aporte y ademas de esta forma incitar otras respuestas...
Bueno es obvio que habrán variaciones segun el tipo,tamaño, forma de desarrollar la aplicación que estes programando...pero suponiendo una aplicación de escritorio tipica...


a. Yo siempre he estado acostumbrado a crearme la clase de acceso y gestión de base de datos. Esto debería implementarlo así con visual studio, o tendría que seguir los wizard para crear los diferentes formularios.

Mira te cuento un poco como tenemos organizada nosotros una aplicacion en desarrollo:
La aplicación administra distintos tipo de especies flora y fauna para un pais de europa(no quiero dar muchos detalles) es una aplicacion light  de escritorio y ademas una aplicacion fat como extencion para ArcMap(y obviamente ambas comparten un nucleo). Esta aplicacion tiene una capa llamada "DataAccess" en la cual consentramos todo acceso, configuracion a lo que base de datos refiera. Tenemos DataSets tipados y DataTableAdapters tipados que se alojan alli. Fabricas para actualizadores de bases de datos, creadores de DataReaders específicos tambien codificados allí.
Es mas facil "juntar capaz" que "separarlas", por lo que yo cuando empiezo a pensar un diseño siempre prefiero separar de mas y luego ir acoplando a medida que avanza el diseño.
Ademas tenemos configuraciones estaticas como parametros de la conexion de la base de datos también agregados alli.


Yo me he creado una clase que me devuelve un dataset con el sql que le envíe,pero igual estoy perdiendo el tiempo y es mejor tirar por la vía de los wizard.

Me imagino que estas creando todos los dataset tipados con sus restricciones a mano... Si no tenes ninguna restriccion, ni necesitas manipular manualmente conexiones... te aconsejo crees los datasets con el wizard de visual studio...te ahorras algunas horas de codificar algo "relativamente trivial" y excluis codigo en la etapa de testeo.
Si luego precisas personificar la forma en que los dataset son creados a partir de una base de datos...podrias tomarte un finde y crearte una clase que te genere ese codigo segun tu diseño y necesidad...  :P  :blink:

Tengo una duda...diseñastes una clase que le pasas tipo "SELECT * FROM una_tabla" y esa clase te devuelve un DataSet con todos los datos de esa tabla ???


b. Tengo un poco de lio entre los datareader, datasets y datatableadapter. Como sería el planteamiento correcto.

Extraido de MSDN
DataReader: Lee una secuencia sólo hacia delante de filas de un origen de datos.
Mas: http://msdn.microsoft.com/es-es/library ... eader.aspx

DataSet: DataSet, que es una caché de memoria interna de datos(...). DataSet está compuesto por una colección de objetos DataTable que se pueden relacionar entre ellos mediante objetos DataRelation. También se puede imponer la integridad de los datos de DataSet mediante los objetos UniqueConstraint y ForeignKeyConstraint.
Mas: http://msdn.microsoft.com/es-es/library ... 80%29.aspx

DataAdapter: Represents a set of data commands and a database connection that are used to fill the DataSet and update the data source. The DataAdapter serves as a bridge between a DataSet and a data source for retrieving and saving data. The DataAdapter provides this bridge by mapping Fill, which changes the data in the DataSet to match the data in the data source, and Update, which changes the data in the data source to match the data in the DataSet.
Mas: http://msdn.microsoft.com/es-es/library ... 71%29.aspx

En resumen: dataset representa un conjunto de tablas en memoria que se mapean a tablas de la base de datos (pudiendo agregar las restricciones y tipos involucados). Un dataadapter es un vinculo entre la tabla en memoria con la respectiva tabla en la base de datos (pudiendo extraer datos con Fill / Load y actualizarlos con Update). Fill rellena una tabla q le pasas como parametro y Load crea y retorna una nueva tabla. Un DataReader se asemeja a un Cursor de Sql extrallendo datos secuencialmente.
Con el dataadapter se suben todos los datos a memoria de una, por lo que tiene como costo memoria ram pero como ventaja la velocidad, en cambio un datareader puede ser mas lento pero no necesariamente subis todos los datos a memoria, podes irlos leyendo y procesando sin ocupar memoria en mantenerlos.

Bueno espero haya quedado un poco claro... A quien le parezca bienvenidos los comentarios....
Si queres escribime a mi correo contandome un poco como es la aplicacion para así poder opinar con mejores argumentos acerca del diseño.
Saludos, Daniel.

67
C# / Re: ACTUALIZAR UN LISTVIEW
« en: Jueves 11 de Marzo de 2010, 02:10 »
Y tu duda cual es?

Quieres que te demos (en nombre del foro) el codigo hecho? <_<

68
C# / Re: problema con un AFD
« en: Lunes 8 de Marzo de 2010, 23:42 »
a  ver ... el AFD tendria 2 estados:

-> empezando en el estado e_0
-> del estado e_0 con una 'a' paso al estado e_1
-> del estado e_1 con una 'a' paso al estado e_0
-> el estado e_0 es el estado final.

Suponete una clase MaquinaDeEstados, que tiene una variable "int estado" inicializada en el estado inicial e_0 ( o sea valor '0' ).

Ademas podrias tener 2 funciones, una q implementa la transacion de e_0 -> e_1 y orta q implementa e_1 -> e_0.

MaquinaDeEstados  maquina = new MaquinaDeEstados ();
mientras hayan a's q leer
haces
    si maquina.estado_actual == e_0
     hago
           maquina.transicionE_0aE_1();
     sino
            maquina.transicionE_1aE_0();
    fin si
fin mientras.

si maquina.estado_actual == e_0
     Consola.Imprimir("CADENA ACEPTADA");
sino
    Consola.Imprimir("CADENA NO ACEPTADA");


Bueno espero q sirva y q no sea demasiado trivial. cualquier cosa re postea y vemos.

69
SQL Server / Re: Como trabajar con roles y permisos
« en: Viernes 5 de Marzo de 2010, 19:17 »

70
Ingeniería del Software / Re: Computacion paralela
« en: Viernes 5 de Marzo de 2010, 19:16 »

71
C# / Re: PingException
« en: Viernes 5 de Marzo de 2010, 14:15 »
Me parece un poco forzado, si el codigo que lanzas es algo pesado y a la vez se puede ejecutar concurrentemente con el form podes lanzar un nuevo hilo.
Código: C#
  1.  
  2. Thread pThread = new Thread(new ThreadStart(lanzar));
  3. pThread.Start();
  4.  
  5.  
el unico inconveniente q introduce esto es a la hora de interactuar con el form. Tenes q hacerlo a travez de Control.Invoke.

72
C# / Re: Detener la ejecución de métodos
« en: Lunes 1 de Marzo de 2010, 08:27 »
Hola, disculpa no te entiendo la pregunta.

Podrias re-plantear la pregunta?

73
C# / Re: Excepcion, obtener el nombre de la clase del error
« en: Sábado 27 de Febrero de 2010, 04:28 »
Hola, hice una prueba con el siguiente codigo que se aproxima a lo que decis vos. Pues en comentario la salida.

Código: C#
  1.  
  2. internal static class Program
  3.     {
  4.         static void Main()
  5.         {
  6.             {
  7.                 try
  8.                 {
  9.                     new MyClass.MyAnotherClass().tirarError();
  10.                 }
  11.                 catch (Exception exp)
  12.                 {
  13.                     new GrabarError().Grabar(exp);
  14.                 }
  15.             }
  16.         }    
  17.  
  18.         internal class MyClass
  19.         {
  20.             internal class MyAnotherClass
  21.             {
  22.                 internal void tirarError()
  23.                 {
  24.                     throw new Exception();
  25.                 }
  26.             }
  27.         }
  28.  
  29.         class GrabarError
  30.         {
  31.             public void Grabar(Exception exp)
  32.             {
  33.                 string sError;
  34.                 sError = exp.TargetSite.DeclaringType.Name;
  35.                 // sError es MyAnotherClass
  36.  
  37.                 sError = exp.TargetSite.ToString();
  38.                 // sError es "Void tirarError()"
  39.             }
  40.         }
  41.     }
  42.  
  43.  

Si podes pone el codigo completo de lo que haces.

Tampoco descartes que "String" es el nombre de una clase y InternalSubStringWithChecks(Int32, Int32, Boolean) es el nombre de un metodo de esa clase.
Quizas quien tira la exception no es tu codigo sino codigo de .net.

Si podes pega el codido con los valores que pasas.

Saludos, espero que sirva. Daniel.

74
C# / Re: Camino entre dos coordenadas
« en: Viernes 26 de Febrero de 2010, 02:15 »
a ver algunas preguntas...

si queres ir de ( x=0 y=0 ) a ( x=1 y=1 ) podes realizar ese movimiento de una en diagonal, o tenes que moverte primero ( x=0, y=1 ) y desp ( x=1, y=1)??

Se entiende mi pregunta? o sea puedo hacer movimientos en diagonal?

Si no puedo hacer movimientos en diagonal => el largo del camino x=0y=0 yendo por el camino que "mejor se aproxima a uno diagonal" es el mismo que ir por un camino L

O sea

........_
...._ |
_.|

recorres 3 "_" y un "|" que es lo mismo que


.......|
.......|
_ _ _ |

saludos y cualquier cosa re-planteate.
saludos, daniel.

75
C# / Re: Excepcion, obtener el nombre de la clase del error
« en: Jueves 25 de Febrero de 2010, 23:58 »
exp.TargetSite.DeclaringType.Name;

ademas podes obtener el nombre del metodo que tiro el error haciendo: exp.TargetSite.ToString()

Páginas: 1 2 [3] 4