FAQ Login
Buscar Perfil
Miembros Grupos de Usuarios
Entre para ver sus mensajes privados
Registrarse
Ayuda C# con SQL Mobile
Publicar nuevo tema   Responder al tema
Foros de discusión » Programacion » Ayuda C# con SQL Mobile
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Pablosantiagoll
Recien nacido
Recien nacido


Registrado: 13 Nov 2007
Mensajes: 1

 Mensaje Publicado: Sab 17/11/2007    Asunto: Ayuda C# con SQL Mobile
Responder citando

Hola necesito ayuda…
Tengo que realizar una especie de factura (toma de pedido) en el Pocket. La idea es utilizar un ComboBox para escoger el producto de una tabla del dataset y en un TextBox que aparesca el valor unitario que corresponde al producto escogido.
El gran problema es que puedo escoger los productos en el ComboBox pero en el TextBox no aparece el valor unitario del producto escogido.

Ya lo intento pero no ha resultado.. Por fa lo necesito de urgencia….

Gracias…..
Nota: Utilizo Windows Mobile 5.0, Visual Studio 2005 (C#), Sql 2005
Rolling Eyes
 Volver arriba »
Ver perfil de usuario Enviar mensaje privado Enviar email Yahoo Messenger
tolgalen
VIP
VIP


Registrado: 18 Jun 2005
Mensajes: 5349

 Mensaje Publicado: Sab 17/11/2007    Asunto:
Responder citando

No tengo demasiada experiencia con c# y es posible que existan soluciones mejores, pero así a bote pronto de doy varias.

1) Al seleccionar el producto en el ComboBox , hacer una consulta a la BD para recuperar el precio de ese producto y actualizarlo en el TextBox.

2) Al cargar el combobox, tener un array auxiliar con los precios de los productos. Si los indices estan sincronizados, al tener el listindex del combobox ya sabes a donde acceder en el array auxiliar.

3) En VB6 había una propiedad muy interesante de los ComboBox y ListBox que era "ItenData". Se usaba para al cargar el combo con datos, cargar en ItenData un array con los ID de los valores. En VB.Net ya no existe esa propiedad, aunque hay formas de simularla. Te paso la documentación del MSDN al respecto, aunque es para VB.Net, adaptarla a C# no te deberia ser compilcado.

http://support.microsoft.com/kb/311340/es

No existe la propiedad ItemData de controles ListBox y ComboBox

Id. de artículo : 311340
Última revisión : jueves, 29 de marzo de 2007
Versión : 3.5
En esta página
Síntomas
Solución
Estado
Más información
Pasos para reproducir el comportamiento
Genere un ejemplo del Visual Basic 6.0 para actualización
Actualice el proyecto de Visual Basic 6.0 a Visual Basic . NET o Visual Basic 2005
Genere un proyecto nuevo en Visual Basic .NET o Visual Basic 2005
Referencias
Síntomas
Puede observar los síntomas siguientes:
• Al actualizar un proyecto de Microsoft Visual Basic 6.0 a Visual Basic . NET o Visual Basic 2005, se descartan los datos que se muestran en la ventana Propiedades para la propiedad ItemData.
• En Visual Basic 6.0, puede establecer la propiedad ItemData en tiempo de diseño a través de la ventana Propiedades para ListBox o un control ComboBox. En Visual Basic . NET o Visual Basic 2005, ya no existe la propiedad ItemData para estos controles.

Volver al principio
Solución
Para resolver este problema, utilice uno de los métodos siguientes
• Si actualizó un proyecto de Visual Basic 6.0 a Visual Basic . NET o Visual Basic 2005, utilice el método VB6.SetItemData (en la biblioteca de compatibilidad de Visual Basic 6.0) para rellenar la lista. Este método normalmente se invoca en el constructor del formulario (el Procedure Public Sub New).
• Para un proyecto nuevo de Visual Basic . NET o Visual Basic 2005, utilice una clase para contener los elementos de lista. Para más información, consulte la sección más "información".

Volver al principio
Estado
Esta característica de diseño es el comportamiento.

Volver al principio
Más información
Pasos para reproducir el comportamiento
Genere un ejemplo del Visual Basic 6.0 para actualización
1. Cree un proyecto nuevo EXE estándar en Visual Basic 6.0. Se creará Form1 de manera predeterminada
2. Agregue un control ListBox y un control Label a Form1.
3. Seleccione el control ListBox. En la ventana Propiedades del control ListBox, haga clic en Propiedad de lista y a continuación, agregue los elementos siguientes. Presione la combinación de teclas CTRL+ENTRAR para moverse al elemento siguiente.

Carol Philips
Jim Kim
Jossef Goldberg
Patricia Doyle


4. Haga clic en la propiedad ItemData del control ListBox y a continuación, agregue los valores siguientes:

1001
1002
1004
1005


5. Haga clic con el botón secundario en Form1 y a continuación, haga clic en Ver código. Agregue el código siguiente en el procedimiento de evento Click del control ListBox:

Private Sub List1_Click()
Dim Msg As String
'Add the employee number and the employee name.
Msg = List1.ItemData(List1.ListIndex) & " "
Msg = Msg & List1.List(List1.ListIndex)
Label1.Caption = Msg
End Sub


6. Guarde su proyecto.
7. En el menú Ejecutar, haga clic en Inicio para ejecutar su proyecto. Asegúrese de que el proyecto se ejecuta sin ningún error.
8. Guarde cualquier cambio y a continuación, cierre el entorno de Visual Basic.
Actualice el proyecto de Visual Basic 6.0 a Visual Basic . NET o Visual Basic 2005
1. Inicie Microsoft Visual Studio .NET o Microsoft Visual Basic 2005.
2. En el menú Proyecto, elija Archivo y a continuación, haga clic en Abrir. Seleccione el archivo .vbp que guardó en la sección anterior y a continuación, haga clic en Aceptar.
3. Siga las instrucciones en la pantalla para actualizar el proyecto.
4. Cuando finaliza la actualización, vaya a la ventana Código de Form1. Si la ventana Código no está disponible, haga clic con el botón secundario en Form1 en Explorador de soluciones y a continuación, haga clic en Ver código.

Observe que el código de procedimiento de evento Click en la aplicación de Visual Basic 6.0 se convierte al evento SelectedIndexChanged del control ListBox en Visual Basic . NET o Visual Basic 2005. El código que recupera ahora la información ItemData aparece como seguimientos o similar:

'UPGRADE_WARNING: Event List1.SelectedIndexChanged may fire when form is initialized.
'Click for more: ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="vbup2075"'
Private Sub List1_SelectedIndexChanged(ByVal eventSender As _
System.Object, ByVal eventArgs As System.EventArgs) Handles _
List1.SelectedIndexChanged
Dim Msg As String
'Add the employee number and the employee name.
Msg = VB6.GetItemData(List1, List1.SelectedIndex) & " "
Msg = Msg & VB6.GetItemString(List1, List1.SelectedIndex)
Label1.Text = Msg
End Sub


Nota Este código no requiere ningún cambio. Sin embargo, puede reemplazar a continuación el método VB6.GetItemString por la sintaxis de Visual Basic .NET o Visual Basic 2005:

Msg = Msg & List1.Items(List1.SelectedIndex).ToString


5. Para poder ejecutar esta aplicación correctamente, debe utilizar el método SetItemData para agregar ItemData. Para ello, haga clic para expandir Código generado por el Diseñador de Windows Forms y a continuación, haga clic para expandir el método Public Sub New si ya no se muestra.
6. Agregue el código siguiente después de la instrucción InitializeComponent del procedimiento Sub New:

VB6.SetItemData(List1, 0, 1001)
VB6.SetItemData(List1, 1, 1002)
VB6.SetItemData(List1, 2, 1004)
VB6.SetItemData(List1, 3, 1005)


7. Guarde su proyecto. En el menú Depuración, haga clic en Inicio para ejecutar su proyecto.
8. Haga clic en cualquier elemento del cuadro de lista. Observe que la propiedad ItemData del ListBox aparece en el control Label con Nombre de empleado.

Nota Si agregó ItemData y ListItems en el proyecto de Visual Basic 6.0 mediante programación, su proyecto de Visual Basic . NET actualizado utiliza la sintaxis siguiente para rellenar ListItems con ItemData en el procedimiento Form Load:

List1.Items.Add(New VB6.ListBoxItem("Carol Philips", 1001))


Volver al principio
Genere un proyecto nuevo en Visual Basic .NET o Visual Basic 2005
1. Cree un proyecto nuevo aplicación para Windows de Visual Basic .NET. Form1 se agrega al proyecto de manera predeterminada

Nota Debe cambiar el código en Visual Basic 2005. Forma predeterminada, Visual Basic crea dos archivos para el proyecto cuando crea un proyecto formularios Windows Forms. Si el formulario se denomina Form1, los dos archivos que representan el formulario se denominan Form1.vb y Form1.Designer.vb. Escribe el código en el archivo Form1.vb. El Diseñador de Windows Forms escribe el código en el archivo Form1.Designer.vb. El Diseñador de Windows Forms utiliza la palabra clave parcial para dividir la implementación Form1 en dos archivos independientes. Este comportamiento impide al código generado por el diseñador intercalarse con su código.

Para más información acerca de las mejoras nuevas idioma Visual Basic 2005, visite el sitio Web siguiente Microsoft Developer Network ( MSDN ):
http://msdn2.microsoft.com/en-us/library/ms379584(vs.80).aspx (http://msdn2.microsoft.com/en-us/library/ms379584(vs.80).aspx)
Para más información acerca de clases parciales y el Diseñador de Windows Forms, visite el sitio Web de MSDN siguiente:
http://msdn2.microsoft.com/en-us/library/ms171843.aspx (http://msdn2.microsoft.com/en-us/library/ms171843.aspx)
2. Coloque ComboBox y un control Label en Form1.
3. En Explorador de soluciones, haga clic con el botón secundario en Nombre del proyecto, seleccione Agregar y a continuación, haga clic en Agregar clase. Asegúrese de que se resalta la clase de Visual Basic.

Nota Visual Basic 2005 En hace clic con el botón secundario en Nombre del proyecto, selecciona Agregar y a continuación, hace clic en Clase.
4. Cambie el nombre de la clase MyList.vb y a continuación, haga clic en Aceptar.
5. Escriba el código siguiente en la sección Public Class MyList en la ventana Código de la clase MyList:

Private sName As String
Private iID As Integer 'You can also declare this as String.

Public Sub New()
sName = ""
iID = 0
End Sub

Public Sub New(ByVal Name As String, ByVal ID As Integer)
sName = Name
iID = ID
End Sub

Public Property Name() As String
Get
Return sName
End Get

Set(ByVal sValue As String)
sName = sValue
End Set
End Property

Public Property ItemData() As Integer
Get
Return iID
End Get

Set(ByVal iValue As Integer)
iID = iValue
End Set
End Property

Public Overrides Function ToString() As String
Return sName
End Function


6. En Explorador de soluciones, haga doble clic en Form1.vb para abrir la ventana Diseño de Form1.
7. Haga doble clic en el formulario para ir al procedimiento Form1 Load y a continuación, agregue el código siguiente al procedimiento Form1 Load:

With ComboBox1
.Items.Add(New MyList("Carol Philips", 101))
.Items.Add(New MyList("Jim Kim", 102))
.Items.Add(New MyList("Jossef Goldberg", 103))
.Items.Add(New MyList("Patricia Doyle", 104))
.SelectedIndex = 0 'Set first item as selected item.
End With


8. En Explorador de soluciones, haga doble clic en Form1.vb para abrir la ventana Diseño de Form1.
9. Haga doble clic en el control ComboBox1 y a continuación, agregue el código siguiente al procedimiento ComboBox1 SelectedIndexChanged:

Dim mList As MyList
mList = ComboBox1.Items(ComboBox1.SelectedIndex)
'In the following statement, you can either use mList.ToString or
'mList.Name. They both return the Name property.
Label1.Text = mList.ItemData & " " & mList.Name
'Alternately, you can use the following syntax.
'Label1.Text = ComboBox1.Items(ComboBox1.SelectedIndex).ItemData _
' & " " & ComboBox1.Items(ComboBox1.SelectedIndex).ToString


10. Guarde su proyecto. En el menú Depuración, haga clic en Inicio para ejecutar el proyecto.
11. Seleccione cualquier elemento del cuadro combinado. Observe que la propiedad ItemData del control ComboBox aparece en el control Label con Nombre de empleado.
Nota También puede utilizar una estructura en lugar de una clase en una manera similar. Para más información acerca de cómo utilizar clase contra estructura en Visual Basic .NET o Visual Basic 2005, consulte la sección "Referencie".

Volver al principio
Referencias
Para más información sobre cómo actualizar la propiedad de Visual Basic 6.0 ItemData a Visual Basic . NET o Visual Basic 2005, consulte el tema de "no se puede actualizar la propiedad ItemData" en la documentación de Visual Studio . NET o Visual Basic 2005 Online Help.

Para comprender mejor las diferencias entre una clase y una estructura, consulte el tema "Clases y de Estructuras" en la documentación de Visual Studio . NET o Visual Basic 2005 Online Help.
 Volver arriba »
Ver perfil de usuario Enviar mensaje privado
tolgalen
VIP
VIP


Registrado: 18 Jun 2005
Mensajes: 5349

 Mensaje Publicado: Sab 17/11/2007    Asunto:
Responder citando

Bueno, mirando en la web del guille, explica lo mismo, pero con ejemplo para VB.Net y C#

http://www.elguille.info/NET/dotnet/ListBox_ItemData.htm
 Volver arriba »
Ver perfil de usuario Enviar mensaje privado
ikari84
Recien nacido
Recien nacido


Registrado: 03 Jul 2008
Mensajes: 3
Ubicación: Mexico

 Mensaje Publicado: Mie 24/12/2008    Asunto:
Responder citando

Hola..

Lo que puedes hacer es utilizar el datasource, para asignar los valores que desees utilizar aunque solo puede utilizar 2 uno que se va mostrar y puede utilizarse como valor, y otro que solo puede ser utilizado como valor.

Por ejemplo supongamos que en tu consulta sea Articulo, Precio, entonces al hacer la consulta rellenas el dataset..

Código:

SqlCEConnection conn = new SqlCEConnection(@"Data source='\Mibase.sdf'");
Dataset dt;
SqlCeAdapter adap;
conn.open();
SqlCECommand cmd = new SqlCEComman("SELECT Articulo,Precio FROM Articulos",conn);
adap.fill(dt,"Articulos");

combox1.Datasource=dt;
combox1.Membervalue = "Precio";
combox1.Displaymember = "Articulo";

//Asignas el valor al cambiar de articulo en combobox
txtbox1.Text = combobox1.Selectedvalue.toString();


Espero que te sirva..
 Volver arriba »
Ver perfil de usuario Enviar mensaje privado Yahoo Messenger MSN Messenger
Mostrar mensajes de anteriores:   
Foros de discusión » Programacion » Ayuda C# con SQL Mobile
Publicar nuevo tema   Responder al tema Todas las horas son GMT + 1 Hora
Página 1 de 1

 
Cambiar a:  
Puede publicar nuevos temas en este foro
No puede responder a temas en este foro
No puede editar sus mensajes en este foro
No puede borrar sus mensajes en este foro
No puede votar en encuestas en este foro
   




http://www.pcdemano.com



Site Map

hit counter for myspace