Mostrando las entradas con la etiqueta C#. Mostrar todas las entradas
Mostrando las entradas con la etiqueta C#. Mostrar todas las entradas

martes, 12 de septiembre de 2017

Habilitar la búsqueda de fallos (debug) en AutoCAD con Visual Studio 2015

Para habilitar la posibilidad de búsqueda de errores y/o fallos  (debug) en nuestro proyecto de AutoCAD en Visual Studio 2015 es necesario correr el siguiente comando en el command prompt de AutoCAD:

NEXTFIBERWORLD  [ENTER]

en donde el valor 0 lo habilita y el valor 1 lo deshabilita.

jueves, 14 de abril de 2016

Cerrar una ventana desde un control hijo usando Event Handlers

Supongamos que creamos un widget de Gtk que deseamos poner en una ventana, pero que en algún evento del mismo se cierre la ventana madre.
En este caso usaremos un Event Handler para que la ventana madre se suscriba al mismo.



Para lograrlo se pueden seguir los siguientes pasos:


1.- Definimos el EventHandler en el control hijo.

    public event EventHandler Closing;


2.- La clase madre debe suscribirse al mismo.
 por ejemplo:
 

    MainWindow win = new MainWindow();
    win.Closing += new EventHandler(OnDeleteEvent);
 

pero como en nuestro caso es un widget omitiremos la parte de la creación del widget.
el código quedaría así:



    this.pdfviewerwidget2.Closing += new EventHandler(OnDeleteEvent);


4.-Al cerrar el widget revisar el evento y activarlo:
 

    private void btnClose_Clicked (object sender, EventArgs e)
       {
       if (Closing != null) {
           Closing (this, new EventArgs ());
       }
           this.Destroy();
       }



5.- Ahora; creamos el método que se activará al cerrar el control hijo en la clase madre:


    public void OnDeleteEvent(object sender, EventArgs args)
       {
           this.Destroy ();
       }


Y esto es todo lo necesario, ahora en cuanto cerremos en el botón hijo se active el botón Close, se activará el evento OnDeleteEvent en la clase madre.

martes, 15 de marzo de 2016

Usar la ConnectionString en el archivo machine.config de mono

Para usar un archivo de configuración semejante al app.config o web.config de .NET en windows es posible agregarlo al archivo machine.config que existe en /etc/mono/<Version de Mono> de manera similar a como lo usamos en los archivos de configuración en Windows.

jueves, 12 de febrero de 2015

Eliminar registros repetidos de una DataTable

A continuación les muestro un ejemplo de como eliminar los registros repetidos de una DataTable.


//DataTable con los reqistros repetidos (myRepeatedData)
//Filtramos los registros únicos en la variable var.

var uniqueRows = myRepeatedData.AsEnumerable().Distinct(DataRowComparer.Default);

//Lo copiamos a otra DataTable
DataTable myUniqueData = uniqueRows.CopyToDataTable();


Con esto tendremos en la DataTable myUniqueData los registros únicos.

jueves, 22 de enero de 2015

Agregar una columna a una DataSet

Ejemplo:

DataSet dsBom = new DataSet(); 
CreateDataSet cdsBom = new CreateDataSet();

DataColumn dcEqty = new DataColumn("Eqty");
dsBom.Tables[0].Columns.Add(dcEqty); 

dsBom.Tables[0].Rows[0]["Eqty"] = 1565;

Como crear la estructura de una DataTable

Agunas veces necesitamos crear un datatable que no necesariamente venga de una base de datos.
Esto se hace de la siguiente manera:

//Creamos el objeto DataTable
DataTable tabla = new DataTable();
//Creamos el objeto ColumnaDataColumn columna;
//Creamos el objeto RenglonDataRow renglon;
//Creamos las columnas necesarias y las agregamos a la tablacolumna = new DataColumn();columna.ColumnName = "Campo1";columna.DataType = System.Type.GetType("System.Int32");tabla.Columns.Add(columna);columna = new DataColumn();columna.ColumnName = "Campo2";columna.DataType = System.Type.GetType("System.String");tabla.Columns.Add(columna);


Con esto ya tenemos un DataTable de nombre tabla con dos campos: El campo "Campo1" de tipo Int32 y el "Campo2" de tipo String.
A continuacion les pongo las propiedades que pueden usar en el objeto Columna:

  • AllowDBNull
    • Acepta un valor booleano que especifica si acepta valore nulos.
  • AutoIncrement
    • Acepta un valor booleano qe especifica si el valor de la columna se incrementara automaticamente o no.
  • AutoIncrementSeed
    • El valor con el que comenzara una columna que se incrementa automaticamente.
  • AutoIncrementStep
    • El valor en que se incrementara una columna que se incrementa automaticamente.
  • ColumnName
    • Un string con el nombre de la columna.
  • DataType
    • Un valor de los especificados en el tipo SystemType que especifica el tipo de valor que aceptara la columna.
  • DefaultValue
    • El valor que la columna tomara por defecto en caso de que no se especifique alguno.
  • MaxLength
    • Especifica la longitud maxima de texto que aceptara un columna de tipo string.
  • Unique
    • Acepta un valor booleano para especificar si la columna debe mantener un valor unico en cada registro de la columna.

Agregar una columna autonumerica a un DataTable

Para agregar una columna autonumerica a un DataTable es necesario crear un objeto DataTable y un objeto Column que tenga la propiedad AutoIncrement en true y luego mezclarlo con el DataTable que deseamos como en el siguiente ejemplo:

DataTable myDt = new DataTable();
DataColumn dc = new DataColumn();
dc.ColumnName = "#";
dc.DataType = typeof(int);
dc.AutoIncrement = true;
dc.AutoIncrementSeed = 1;
dc.AutoIncrementStep = 1;

BoardCode bc = new BoardCode();
DataTable dt = bc.GetHoldersByBcID(int.Parse(this.TextBox1.Text));

myDt.Columns.Add(dc);

myDt.Merge(dt);

this.GridView1.DataSource = myDt;
this.GridView1.DataBind();



Asi, cuando la despleguemos en un DataGridView se mostrara en la primera columna con un contador de renglones.

miércoles, 17 de diciembre de 2014

Como obtener los valores seleccionados en ASPxGridview


Cuando tenemos un Gridview con la selección habilitada y necesitamos saber cuáles registros han sido seleccionados por el usuario, debemos obtener la lista de renglones seleccionados e iterar sobre ella para obtener los datos deseados tal y como se muestra en el siguiente ejemplo:

       this.ASPxMemo1.Text = String.Empty;
            List<object> fieldValues = ASPxGridView1.GetSelectedFieldValues(new string[] { "ProductId", "Name" });
            foreach (object[] item in fieldValues)
            {
                this.ASPxMemo1.Text += item[1].ToString() + "\n";
            }



En este caso obtenemos un lista de objetos con las cadenas (del campo locationid) de cada renglón seleccionado y solo iteramos con el foreach para obtener cada Nombre del Producto (Name).

sábado, 15 de noviembre de 2014

Buscar un valor en una Data Table con el operador Select

Cuando necesitemos buscar por la existencia o no-existencia de un valor en una Data Table podemos usar LINQ de la siguiente manera:

Si deseamos buscar si en una columna llamada proceso tenemos un valor 'X':

DataTable dt = GetDataTable();
var rowsWithX = dt.Select("proceso = 'X'");
if(rowsWithX.Lenght != 0)
{
      //Hacer algo si se encuentra la X en la columna proceso

}


Si deseamos hacer algo cuando en la columna exista cualquier valor diferente de 'X':

DataTable dt = GetDataTable();
var rowsWithoutX = dt.Select("proceso <> 'X'");
if(rowsWithoutX.Lenght != 0)
{
      //Hacer algo si no se encuentra la X en la columna proceso

}



También es posible usar el operador like para ver si se encuentra una cadena de caracteres dentro de un campo de char o varchar:

DataTable dt = GetDataTable();
var rowsWithoutX = dt.Select("proceso like '%X'%");
if(rowsWithoutX.Lenght != 0)
{
      //Hacer algo si no se encuentra la X en la columna proceso

}

miércoles, 12 de febrero de 2014

Pasos para renombrar un proyecto de ASP.NET

Algunas veces es necesario renombrar un proyecto de ASP.NET, especialmente cuando nos basamos en una plantilla predefinida.

Para hacerlo es necesario seguir lo siguientes pasos:

  1. Renombrar el folder que contiene al website.

  2. Abrir el sitio en Visual Studio.

  3. Renombrar la solución dando un click con el botón derecho en la solución, seleccionando rename del menú contextual.

  4. Renombrar el proyecto dando un click con el botón derecho en el proyecto, seleccionando rename del menú contextual.

  5. Abrir el website como proyecto.

  6. Modificar el Assembly Name y el Default Namespace en las propiedades del proyecto.

  7. Reemplazar las ocurrencias de namespace <proyecto>{ con el nombre del proyecto deseado en todos los archivos (CTRL+SHIFT+H).

  8. Reemplazar las ocurrencias de Inherits="<proyecto>. con el nombre del proyecto deseado en todos los archivos (CTRL_SHIFT_H).


Con estos pasos quedará todo con el nuevo nombre de proyecto.

Mover mensajes seleccionados a un personal folder en Oulook 2016

Este es un ejemplo de como mover los mensajes seleccionados a un personal folder (pst) en Outlook 2016 usando VBA. Sub MoveInbox()     Mov...