elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  solo me muestra el primer caracter de mi cadena C#
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: solo me muestra el primer caracter de mi cadena C#  (Leído 2,924 veces)
SrTrp


Desconectado Desconectado

Mensajes: 327


Script/C#


Ver Perfil
solo me muestra el primer caracter de mi cadena C#
« en: 7 Noviembre 2023, 07:40 am »

Hola que tal estoy usando C# windows form y como base de datos SQL de azure, estoy haciendo una consulta y no me da todo mi cadena solo me da el primer caracter de 1 campo
esta es mi consulta
Código
  1. string cos = "SELECT id, login, CAST(DECRYPTBYPASSPHRASE('testing123', tarjeta) AS VARCHAR(MAX)) AS tarjeta FROM usuario WHERE login='" + logger+"'";
  2.  
el campo que me da incompleto es el de tarjeta, pero cuando lo mando a consola con Console.WrileLine me aparece algo así '5?4?5?6?7?8==', completa mi cadena la de menos es quitar los signos ?, pero al momento que hago esto
Código
  1. using (SqlCommand command = new SqlCommand(cos, connection))
  2.                {
  3.                    using (SqlDataAdapter adapter = new SqlDataAdapter(command))
  4.                    {
  5.                        DataTable table = new DataTable();
  6.                        adapter.Fill(table);                        
  7.                        DataRow dr = table.Rows[0];
  8.                        lbid.Text = dr["id"].ToString();  
  9.                        lblogin.Text = (string)dr["login"];
  10.                        string tarjeta = (string)dr["tarjeta"];
  11.                        MessageBox.Show(tarjeta + "==");
  12.                        Console.WriteLine(tarjeta + "==");
  13.                        textBox1.Text = tarjeta+ "==";
  14.                        lbtarjeta.Text = tarjeta+ "==";
  15.  
Solo en console.writeline me aparece la cadena completa, lo que es en el message, el label y textbox solo me da el primer caracter le agrege al final los == para ver si terminaba la cadena pero de los 4 casos para ver la cadena solo me muestra en uno completo.
Si alguien puede ayudarme se lo agradeceria
En los 3 casos que no me muestra la cadena solo muestra '5'


En línea

Locura_23

Desconectado Desconectado

Mensajes: 162



Ver Perfil
Re: solo me muestra el primer caracter de mi cadena C#
« Respuesta #1 en: 7 Noviembre 2023, 16:13 pm »

diria que pruebes utilizar el debugger para ver qué se está guardando en cada string, pero hay una forma más comoda de utilizar strings en c#, ej:

Código
  1. string firstName = "Mario";
  2. int age = 25;
  3.  
  4. string info = $"His name is {firstName} and he has {age} years old.";

es más legible y cómodo que utilizar los + para concatenar.



« Última modificación: 7 Noviembre 2023, 16:27 pm por Locura_23 » En línea

Locura_23

Desconectado Desconectado

Mensajes: 162



Ver Perfil
Re: solo me muestra el primer caracter de mi cadena C#
« Respuesta #2 en: 7 Noviembre 2023, 16:27 pm »

 .
En línea

SrTrp


Desconectado Desconectado

Mensajes: 327


Script/C#


Ver Perfil
Re: solo me muestra el primer caracter de mi cadena C#
« Respuesta #3 en: 7 Noviembre 2023, 16:59 pm »

Sigue pasando lo mismo solo al llegar a console.wriline me escribe completa la cadena
ACTUALIZO:
Se producia debido a que traia caracteres raros desde la base de datos, lo solucione con esto:
Código
  1. string tarjeta = (string)row["tarjeta"];
  2.                            tarjeta = actuastrin(tarjeta);
  3.                            string actuastrin(string cad)
  4.                            {
  5.                                if (cad== null)
  6.                                {
  7.                                    return string.Empty;
  8.                                }
  9.                                return new string(cad.Where(c => !char.IsControl(c)).ToArray());
  10.                            }
  11.  
« Última modificación: 7 Noviembre 2023, 17:07 pm por SrTrp » En línea

Danielㅤ


Desconectado Desconectado

Mensajes: 1.838


🔵🔵🔵🔵🔵🔵🔵


Ver Perfil
Re: solo me muestra el primer caracter de mi cadena C#
« Respuesta #4 en: 7 Noviembre 2023, 17:11 pm »

Hola, no tengo conocimientos alguno en C#, pero prueba a eliminar esta linea:

Código
  1. DataRow dr = table.Rows[0];

Nos comentas si ahora se muestra completo.


Saludos

EDITTO: Veo que lo has solucionado, entonces el problema es al detectar el signo de pregunta (?) desde ahí es donde se corta la cadena por ese caracter, lo que podes hacer es primero eliminarlos a todos los signos "?" y después cargar los datos.
« Última modificación: 7 Noviembre 2023, 17:15 pm por Danielㅤ » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines