Foro Oficial de C#

Que tipo de datos recibe?? y en que formato??? :rolleyes:


SuerteX :)


DATE, y en la grilla si los puedo formatear con DataFormatString= {0:dd/MM/yyyy} y me la muestra bien:

grilla.jpg

y cuando le doy editar:

grillaedit.jpg

sale eso del tiempo que no quiero que aparezca obviamente por que asi lo toma de la BD ...por eso quiero ver si exite alguna forma de formatear ese Textbox....

selecciono una fecha

selfecha.jpg


y ahi sale bien por que el date picker esta formateado a dd/mm/yyyy

selfecha2.jpg

pero hace que se vea mal lo demas ... :\



------


Por otra parte alguien me puede hacer el favor de enviar un enlance donde pueda encontrar información acerca de como copiar un GridView a otro Gridview en C# y luego mandar los datos del ultimo Gridview a una tabla de una BD. Gracias ;)
 
DATE, y en la grilla si los puedo formatear con DataFormatString= {0:dd/MM/yyyy} y me la muestra bien:

grilla.jpg

y cuando le doy editar:

grillaedit.jpg

sale eso del tiempo que no quiero que aparezca obviamente por que asi lo toma de la BD ...por eso quiero ver si exite alguna forma de formatear ese Textbox....

selecciono una fecha

selfecha.jpg


y ahi sale bien por que el date picker esta formateado a dd/mm/yyyy

selfecha2.jpg

pero hace que se vea mal lo demas ... :\



------


Por otra parte alguien me puede hacer el favor de enviar un enlance donde pueda encontrar información acerca de como copiar un GridView a otro Gridview en C# y luego mandar los datos del ultimo Gridview a una tabla de una BD. Gracias ;)


Bueno y porque no traes la fecha ya formateada de la base de datos, con solo un cambio en la consulta

select convert(varchar(10),getdate(),111)
donde getdate() lo puedes cambiar por tu el campo de tu consulta. y asi lo traes formateado asi : 2010/05/14
 
Bueno y porque no traes la fecha ya formateada de la base de datos, con solo un cambio en la consulta

select convert(varchar(10),getdate(),111)
donde getdate() lo puedes cambiar por tu el campo de tu consulta. y asi lo traes formateado asi : 2010/05/14


gracias, eso si funciona en Oracle??? por que intente:


PHP:
SQL> select convert(varchar(10),liquidacion,103) from agenda;
select convert(varchar(10),liquidacion,103) from agenda
               *
ERROR en lÝnea 1:
ORA-00936: falta una expresi¾n



SQL> select convert(varchar(10),"liquidacion",103) from agenda;
select convert(varchar(10),"liquidacion",103) from agenda
               *
ERROR en lÝnea 1:
ORA-00936: falta una expresi¾n


SQL> select convert(varchar(10),'liquidacion',103) from agenda;
select convert(varchar(10),'liquidacion',103) from agenda
               *
ERROR en lÝnea 1:
ORA-00936: falta una expresi¾n
 
gracias, eso si funciona en Oracle??? por que intente:


PHP:
SQL> select convert(varchar(10),liquidacion,103) from agenda;
select convert(varchar(10),liquidacion,103) from agenda
               *
ERROR en lÝnea 1:
ORA-00936: falta una expresi¾n



SQL> select convert(varchar(10),"liquidacion",103) from agenda;
select convert(varchar(10),"liquidacion",103) from agenda
               *
ERROR en lÝnea 1:
ORA-00936: falta una expresi¾n




SQL> select convert(varchar(10),'liquidacion',103) from agenda;
select convert(varchar(10),'liquidacion',103) from agenda
               *
ERROR en lÝnea 1:
ORA-00936: falta una expresi¾n




Perdon no sabia que era Oracle, esa instrucion es de SQLSERVER, en Oracle seria mas o menos asi :

select to_char(liquidacion,'DD/MM/YYY')
from Agenda;

Si por ejemplo quieres las horas:

select to_char(liquidacion,'DD/MM/YYYY:HH24')
from Agenda;

Simpre y cuando tu campo liquidacion sea del tipo DateTime
 
gracias, eso si funciona en Oracle??? por que intente:


PHP:
SQL> select convert(varchar(10),liquidacion,103) from agenda;
select convert(varchar(10),liquidacion,103) from agenda
               *
ERROR en lÝnea 1:
ORA-00936: falta una expresi¾n



SQL> select convert(varchar(10),"liquidacion",103) from agenda;
select convert(varchar(10),"liquidacion",103) from agenda
               *
ERROR en lÝnea 1:
ORA-00936: falta una expresi¾n


SQL> select convert(varchar(10),'liquidacion',103) from agenda;
select convert(varchar(10),'liquidacion',103) from agenda
               *
ERROR en lÝnea 1:
ORA-00936: falta una expresi¾n

jejejejejeje ASP.NET no se mucho, pero sabia que debia ser facil :D .... es lo bueno de juguetear con los controles :D

PHP:
TextBox1.Text = DateTime.Parse(Calendar1.SelectedDate.ToString()).ToShortDateString();

Asi independientemente del formato de la BD sale en formato corto :)

SuerteX :)
 
Perdon no sabia que era Oracle, esa instrucion es de SQLSERVER, en Oracle seria mas o menos asi :

select to_char(liquidacion,'DD/MM/YYY')
from Agenda;

muchas gracias, esa era , con eso ya sale como queria:)

jejejejejeje ASP.NET no se mucho, pero sabia que debia ser facil :D .... es lo bueno de juguetear con los controles :D

PHP:
TextBox1.Text = DateTime.Parse(Calendar1.SelectedDate.ToString()).ToShortDateString();
Asi independientemente del formato de la BD sale en formato corto :)

SuerteX :)

también funciona pero me saldría un poquito mas largo, muchas gracias de todas formas ;)



y por otra parte ya he buscado como copiar un GridView a otro Gridview pero solo encuentro ejemplos en VB, se que hay convertidores a C# , pero algunas cosas no las convierte y entiendo mas o menos algo de VB pero algunas cosas no se cual sera su equivalente... entonces alguna pagina para ver un ejemplo de como hacer lo anteriormente planteado:nervios:
 
MI duda radica en lo siguiente, estoy haciendo una interfaz grafica en visual stdio en c sharp lo que quiero es que al apretar un boton un contador cuente cierto tiempo pero que se muestre en un textbox numero por numero por decir algo 0 espere un segundo y muestre el siguiente dato 1 y asi sucesivamente.
Mi codigo es el siguiente

private void button1_Click(Object sender, EventArgs e)
{
int cont;
button1.visible=true;

for(cont=0;cont<5;con++)
{
Thread.Sleep(1000);
string buffer = cont.ToString();
textbox2.Text += buffer;
textbox2.Text += Enviroment.NewLine;
}
}

Ese es mi codigo lo que pasa es que hace todo el ciclo de trabajo con el tiempo dado y muestra todo los resultados en el textbox o sea 0 1 2 3 4 5 al mismo tiempo que es lo que no quiero yo quiero uno por uno osea 0 espera un segundo 1 otro segundo 2 otro segundo y asi sucesivamente
 
MI duda radica en lo siguiente, estoy haciendo una interfaz grafica en visual stdio en c sharp lo que quiero es que al apretar un boton un contador cuente cierto tiempo pero que se muestre en un textbox numero por numero por decir algo 0 espere un segundo y muestre el siguiente dato 1 y asi sucesivamente.
Mi codigo es el siguiente

private void button1_Click(Object sender, EventArgs e)
{
int cont;
button1.visible=true;

for(cont=0;cont<5;con++)
{
Thread.Sleep(1000);
string buffer = cont.ToString();
textbox2.Text += buffer;
textbox2.Text += Enviroment.NewLine;
}
}

Ese es mi codigo lo que pasa es que hace todo el ciclo de trabajo con el tiempo dado y muestra todo los resultados en el textbox o sea 0 1 2 3 4 5 al mismo tiempo que es lo que no quiero yo quiero uno por uno osea 0 espera un segundo 1 otro segundo 2 otro segundo y asi sucesivamente


Usa un Timer, y en evento Elapsed haces tu codigo asi:

using System;
using System.Timers;

public class Timer1
{
public static void Main()
{
// Normally, the timer is declared at the class level, so
// that it doesn't go out of scope when the method ends.
// In this example, the timer is needed only while Main
// is executing. However, KeepAlive must be used at the
// end of Main, to prevent the JIT compiler from allowing
// aggressive garbage collection to occur before Main
// ends.
System.Timers.Timer aTimer = new System.Timers.Timer();

// Hook up the Elapsed event for the timer.
aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent);

// Set the Interval to 2 seconds (2000 milliseconds).
aTimer.Interval = 2000;
aTimer.Enabled = true;

Console.WriteLine("Press the Enter key to exit the program.");
Console.ReadLine();

// Keep the timer alive until the end of Main.
GC.KeepAlive(aTimer);
}

// Specify what you want to happen when the Elapsed event is
// raised.
private static void OnTimedEvent(object source, ElapsedEventArgs e)
{
//aqui va tu codigo
}
}
 
muchas gracias, esa era , con eso ya sale como queria:)



también funciona pero me saldría un poquito mas largo, muchas gracias de todas formas ;)



y por otra parte ya he buscado como copiar un GridView a otro Gridview pero solo encuentro ejemplos en VB, se que hay convertidores a C# , pero algunas cosas no las convierte y entiendo mas o menos algo de VB pero algunas cosas no se cual sera su equivalente... entonces alguna pagina para ver un ejemplo de como hacer lo anteriormente planteado:nervios:

Supongo que lo puedes hacer usando una variable SQLDatasource, por suerte ASP.NET tiene de esas :S.

Edit: Correcion.... no hay que dar parse..

TextBox1.Text = Calendar1.SelectedDate.ToShortDateString();


SuerteX :)
 
Mira xjuanch0x agradezco tu ayuda que es muy buena, solo que yo lo necesito correr en una aplicaciòn grafica y no solamente en consola, te mando todo mi codigo que llevo que lo que hace es lo que ya explique en el pasado, muestra todos los numeros de un contador de una vez y no uno por uno, esperando un segundo entre cada envio de un digito que es lo que yo deseo.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Threading;
using System.IO.Ports;
using System.Timers;

namespace Sencillo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
button1.Visible = true;
}

private void button1_Click(object sender, EventArgs e)
{
int cont;


for (cont = 0; cont < 5; cont++)
{
Thread.Sleep(1000);
string buffer = cont.ToString();
textBox1.Text += buffer;
textBox1.Text += Environment.NewLine;
}
}
}
}


Espero no resultar muy molesto por mi escaso conocimiento en el mundo de C#, lo que pasa es que de verdad me urge e intento hacer mi mayor esfuerzo, de ante mano gracias y espero tu pronta respuesta.
 
Mira xjuanch0x agradezco tu ayuda que es muy buena, solo que yo lo necesito correr en una aplicaciòn grafica y no solamente en consola, te mando todo mi codigo que llevo que lo que hace es lo que ya explique en el pasado, muestra todos los numeros de un contador de una vez y no uno por uno, esperando un segundo entre cada envio de un digito que es lo que yo deseo.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Threading;
using System.IO.Ports;
using System.Timers;

namespace Sencillo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
button1.Visible = true;
}

private void button1_Click(object sender, EventArgs e)
{
int cont;


for (cont = 0; cont < 5; cont++)
{
Thread.Sleep(1000);
string buffer = cont.ToString();
textBox1.Text += buffer;
textBox1.Text += Environment.NewLine;
}
}
}
}


Espero no resultar muy molesto por mi escaso conocimiento en el mundo de C#, lo que pasa es que de verdad me urge e intento hacer mi mayor esfuerzo, de ante mano gracias y espero tu pronta respuesta.

El timer forma parte del framework, es independiente del tipo de aplicacion....busque en el Cuadro de herramientas, ahi esta...

Clase Timer


SuerteX :)
 
Duda Novato C#,

tengo un directorio con varios archivos de un mismo tipo, ahora los nombres de los archivos tienen este formato XXXXX-YYYYYY.xyz, (6numeros-6numeros.xyz (extension .zip .pdf. doc) )tengo en mi aplicacion c# el valor de XXXXX es un id unico, los YYYYY no me interesan, desdeo referenciar el archivo en una string, me explico:
en c:\carpeta tengo:

123456-000000.txt
789456-000000.txt

en c# busco el archivo 123456-000000.txt de la siguiente manera:

PHP:
string idarchivo = "123456";
string archivo = "c:\carpeta\"+idarchivo+"-[0-9]{6,}+.txt";

la expresion regular no me funciona, alguna sugerencia? estoy tomando el camino equivocado? hay algo mas facil?
Gracias.
 
Duda Novato C#,

tengo un directorio con varios archivos de un mismo tipo, ahora los nombres de los archivos tienen este formato XXXXX-YYYYYY.xyz, (6numeros-6numeros.xyz (extension .zip .pdf. doc) )tengo en mi aplicacion c# el valor de XXXXX es un id unico, los YYYYY no me interesan, referenciar el archivo en una string, me explico:
en c:\carpeta tengo:

123456-000000.txt
789456-000000.txt

en c# busco el archivo 123456-000000.txt de la siguiente manera:

PHP:
string idarchivo = "123456";
string archivo = "c:\carpeta\"+idarchivo+"-[0-9]{6,}+.txt";

la expresion regular no me funciona, alguna sugerencia? estoy tomando el camino equivocado? hay algo mas facil?
Gracias.

para una validacion tan sencilla ... no vale la pena meterse con expresiones regulares que por cierto las estas usando muy mal.

Lo que yo haria seria utilizar String.IndexOf() para determinar la posición de del guion '-' una vez hallada utilizo String.substring para cortar de la posición 0 hasta la posición donde esta el guión y listo ese es el numero que te interesa.
 
Duda Novato C#,

tengo un directorio con varios archivos de un mismo tipo, ahora los nombres de los archivos tienen este formato XXXXX-YYYYYY.xyz, (6numeros-6numeros.xyz (extension .zip .pdf. doc) )tengo en mi aplicacion c# el valor de XXXXX es un id unico, los YYYYY no me interesan, desdeo referenciar el archivo en una string, me explico:
en c:\carpeta tengo:

123456-000000.txt
789456-000000.txt

en c# busco el archivo 123456-000000.txt de la siguiente manera:

PHP:
string idarchivo = "123456";
string archivo = "c:\carpeta\"+idarchivo+"-[0-9]{6,}+.txt";
la expresion regular no me funciona, alguna sugerencia? estoy tomando el camino equivocado? hay algo mas facil?
Gracias.

despues de navegar y navegar, Lo resolví de la siguiente forma con using system.IO:


PHP:
System.IO.FileInfo[]  archivos;   //  vector de tipo file info para almacenar todos los  archivos existentes en una carpeta.
string path = @"c:\carpeta\";       //  carpeta donde estan los archivos a buscar.
string patronarchivo = "123456-*.txt";   //claro esta  utilizando el comodin *.
archivos = new DirectoryInfo(path).GetFiles(patronarchivo);  // busca los archivos que estan en el directorio,  que cumplen el patron.
for (int i = 0; i < (MisFicheros.Length); i++)//recorro el vector con los resultados
      {
                Console.WriteLine(MisFicheros[i]);
       }
Gracias JuanK_solocodigo por la respuesta.
 
hola, una pregunta, con esta instrucción:

PHP:
DataView dv = SqlDS1.Select(DataSourceSelectArguments.Empty) as DataView;
unicamente saca las filas de la tabla de la BD que tengan algun valor?
 
Hola a tod@s!

Estoy programando en c# desde hace nada por lo que no controlo demasiado.

Mi 'problema' consiste en que tengo un programilla ya hecho y ahora tengo que añadirle la siguiente funcion: cuando el programa este minimizado en el systray, tiene que haber la opcion de cuando le damos a 'Ctrl + C' o 'Copiar' en un procesardor de textos (por ejemplo, wordpad, word...), tiene que aparecer un bocadillo (ballontip) en el icono del tray cogiendo los numeros del clipboard de windows.

Un colega me a pasado el siguente enlace ( http://www.radsoftware.com.au/articles/clipboardmonitor.aspx ), pero estamos en las mismas. No entiendo kasi nada!. Alguien sabe lo ke tendria ke hacer o komo ajustarlo a mis necesitades??
Todas las respuestas son bienvenidos!

Muchas gracias de antemano!
 
Hola a tod@s!

Estoy programando en c# desde hace nada por lo que no controlo demasiado.

Mi 'problema' consiste en que tengo un programilla ya hecho y ahora tengo que añadirle la siguiente funcion: cuando el programa este minimizado en el systray, tiene que haber la opcion de cuando le damos a 'Ctrl + C' o 'Copiar' en un procesardor de textos (por ejemplo, wordpad, word...), tiene que aparecer un bocadillo (ballontip) en el icono del tray cogiendo los numeros del clipboard de windows.

Un colega me a pasado el siguente enlace ( http://www.radsoftware.com.au/articles/clipboardmonitor.aspx ), pero estamos en las mismas. No entiendo kasi nada!. Alguien sabe lo ke tendria ke hacer o komo ajustarlo a mis necesitades??
Todas las respuestas son bienvenidos!

Muchas gracias de antemano!

Pues documentacion en español no encontré, pero tal vez esto te ayude ¿no?

http://msdn.microsoft.com/en-us/magazine/cc188923.aspx
 
Mi pekeno avance

Pues documentacion en español no encontré, pero tal vez esto te ayude ¿no?

http://msdn.microsoft.com/en-us/magazine/cc188923.aspx


despues de varios intentos, esto es mas o menos lo que tengo. Pero kon el NotifyIcon me da dos advertencias. Por esto no se si voy bien o mal. Aki os pego el cacho de codigo. a ver si alguien sabe responderme...:
En el ...Designer.cs
#endregion

private System.Windows.Forms.Label lbl_int;
private System.Windows.Forms.TextBox txt_int1;
private System.Windows.Forms.TextBox txt_int2;
private System.Windows.Forms.TextBox txt_int3;
private System.Windows.Forms.TextBox txt_int4;
private System.Windows.Forms.Label lbl_Gmt;
private System.Windows.Forms.TextBox txt_GMT1;
private System.Windows.Forms.TextBox txt_GMT2;
private System.Windows.Forms.TextBox txt_GMT3;
private System.Windows.Forms.TextBox txt_GMT4;
private System.Windows.Forms.TextBox txt_LCT1;
private System.Windows.Forms.TextBox txt_LCT2;
private System.Windows.Forms.TextBox txt_LCT3;
private System.Windows.Forms.TextBox txt_LCT4;
private System.Windows.Forms.Label lbl_LCT;
private System.Windows.Forms.Button cmdConvert;
private System.Windows.Forms.NotifyIcon notifyIcon1; <----- "Field ' WindowsFormsApplication1....notifyIcon1' is never assigned to, and will always have its default value null"


En el programa.cs
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Diagnostics;
using System.Windows.Forms;
using System.Globalization;
using System.Runtime.InteropServices;
using System.Security.Permissions;
using System.IO;


namespace WindowsFormsApplication1
{
unsafe partial class frmTimeViewer : System.Windows.Forms.Form
{
[DllImport("User32.dll", CharSet = CharSet.Auto)]
public static extern IntPtr SetClipboardViewer(IntPtr hWndNewViewer);

[DllImport("User32.dll")]
protected static extern int SetClipboardViewer(int hWndNewViewer);

[DllImport("User32.dll", CharSet = CharSet.Auto)]
public static extern bool ChangeClipboardChain(IntPtr hWndRemove, IntPtr hWndNewNext);

[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern int SendMessage(IntPtr hwnd, int wMsg, IntPtr wParam, IntPtr lParam);

private System.Windows.Forms.NotifyIcon notifyicon1; <-----"The field 'WindowsFormsApplication1.frm.notifyIcon1' is never used"

IntPtr nextClipboardViewer;

public frmTimeViewer()
{
InitializeComponent();
nextClipboardViewer = (IntPtr)SetClipboardViewer((int)this.Handle);
}

protected override void Dispose(bool disposing)
{
ChangeClipboardChain(this.Handle, nextClipboardViewer);
if (disposing)
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose(disposing);
}

protected override void WndProc(ref System.Windows.Forms.Message m)
{
// defined in winuser.h
const int WM_DRAWCLIPBOARD = 0x308;
const int WM_CHANGECBCHAIN = 0x030D;

switch (m.Msg)
{
case WM_DRAWCLIPBOARD:
DisplayClipboardData();
SendMessage(nextClipboardViewer, m.Msg, m.WParam,
m.LParam);
break;

case WM_CHANGECBCHAIN:
if (m.WParam == nextClipboardViewer)
nextClipboardViewer = m.LParam;
else
SendMessage(nextClipboardViewer, m.Msg, m.WParam,
m.LParam);
break;

default:
base.WndProc(ref m);
break;
}
}

void DisplayClipboardData()
{
try
{
IDataObject iData = new DataObject();
iData = Clipboard.GetDataObject();

string s = Clipboard.GetData(DataFormats.Text).ToString();
notifyIcon1.BalloonTipText = (String)iData.GetData(DataFormats.Text);
}
catch (Exception e)
{
MessageBox.Show(e.ToString());
}
}
(...)
private void notifyIcon1_DoubleClick(object sender, EventArgs e)
{
this.Show();
this.WindowState = FormWindowState.Normal;
notifyIcon1.Visible = false;
}