• Domingo 22 de Diciembre de 2024, 13:51

Autor Tema:  Error Al Mandar .flotates A La Bd Desde Aplicasion  (Leído 3235 veces)

maikmr

  • Miembro MUY activo
  • ***
  • Mensajes: 112
    • Ver Perfil
Error Al Mandar .flotates A La Bd Desde Aplicasion
« en: Jueves 19 de Enero de 2006, 21:39 »
0
Código: Text
  1.  
  2. private void insert()
  3.     {
  4.       try
  5.       {
  6.         float salfij= double.Parse(textBoxsalfij.Text);
  7.         float salxhor= double.Parse(textBoxsalhor.Text);
  8.        
  9.         SqlConnection sqlConn = new SqlConnection("server=servidor;uid=usuario;pwd=keyword;database=dbase");
  10.      
  11.         string strsql = "Exec guardar'{0}',{1},{2}";
  12.         strsql = string.Format(strsql,textBoxname.Text,salxhor,salfij);
  13.      
  14.         SqlCommand sqlCmdAgregar = new SqlCommand(strsql,sqlConn);
  15.  
  16.         sqlConn.Open();
  17.         SqlDataAdapter dtaBuscar = new SqlDataAdapter();
  18.         dtaBuscar.SelectCommand = new SqlCommand(strsql, sqlConn);
  19.         DataSet dtsBuscar = new DataSet();
  20.         dtaBuscar.Fill(dtsBuscar);
  21.         sqlConn.Close();
  22.         dtsBuscar.Clear();
  23.       }
  24.       catch(SqlException s){MessageBox.Show("Error: "+s.Message);}
  25.     }  
  26.  
  27.  
  28.  

La tabla a donde se guardan los datos es algo asi!!

Código: Text
  1.  
  2. Create table datos
  3. (
  4.     keyss         int identity(1,1),
  5.     nombre    char (20),
  6.     monto1     float,
  7.     monto2     float,
  8.     primarykey(keyss)
  9. )
  10.  
  11.  
   
Lo que pasa es que cuando mando a guardar los datos desde la aplicasion me da el siguiente error:
"El procedimiento o funcion tiene demaciados parametros especificados"

Y si es logico que diga eso pues yo lo que estoy mandanto es un nombre, un 850,56 y un cero que al debugearlo se ve asi:

Código: Text
  1.  
  2. strsql  "Exec registrar_trabajador "850,56,0,'Juan'"
  3.  
  4.  
se supo que el procedimiento almacenado solo resive tres parametros pero al colocar al numero 850,56 el 56 la aplicasion lo ve como un parametro mas a enviar cosa que no es cierta pues a al hora de enviar los parametros lo correcto seria que se vea si:
Código: Text
  1.  
  2. strsql  "Exec registrar_trabajador "850.56,0,'Juan'"
  3.  
  4.  
Osea que el ,56 lo mande como parte del numero 850, (850,56)
Le agradeseré por la ayuda!!

Güorker

  • Miembro MUY activo
  • ***
  • Mensajes: 383
    • Ver Perfil
Re: Error Al Mandar .flotates A La Bd Desde Aplicasion
« Respuesta #1 en: Viernes 20 de Enero de 2006, 08:15 »
0
Hola,

para el String que almacena el numero le dices que reemplace los comas por puntos y listo.

Saludos
[size=109]Ondo ibili, gutxi gastau eta bueltak amari[/size]
[size=109]Pasalo bien, gasta poco y las vueltas a tu madre[/size]

maikmr

  • Miembro MUY activo
  • ***
  • Mensajes: 112
    • Ver Perfil
Re: Error Al Mandar .flotates A La Bd Desde Aplicasion
« Respuesta #2 en: Viernes 20 de Enero de 2006, 23:27 »
0
Y como se hace eso de remplazar la coma por un punto en el string???

Güorker

  • Miembro MUY activo
  • ***
  • Mensajes: 383
    • Ver Perfil
Re: Error Al Mandar .flotates A La Bd Desde Aplicasion
« Respuesta #3 en: Lunes 23 de Enero de 2006, 08:27 »
0
Utilizando el metodo "Replace" de la clase String.
[size=109]Ondo ibili, gutxi gastau eta bueltak amari[/size]
[size=109]Pasalo bien, gasta poco y las vueltas a tu madre[/size]

maikmr

  • Miembro MUY activo
  • ***
  • Mensajes: 112
    • Ver Perfil
Re: Error Al Mandar .flotates A La Bd Desde Aplicasion
« Respuesta #4 en: Martes 24 de Enero de 2006, 05:32 »
0
Lo que dices no me funciona, xq lo q necesito es quitar no exactamente quitar la coma, ademas al remplazar la coma genera un error pues remplaza todas las comas q separan cada parametro a enviar a la BD, y estube viendo y las vars de tipo float se manejan con una " , " entonces lo que necesito es que me diga alguna otra forma distinta a la que estoy usando para mandar a guardar los datos a la BD y que no genere el error q yo tengo a la hora de guardar valores flotantes.

Güorker

  • Miembro MUY activo
  • ***
  • Mensajes: 383
    • Ver Perfil
Re: Error Al Mandar .flotates A La Bd Desde Aplicasion
« Respuesta #5 en: Martes 24 de Enero de 2006, 08:35 »
0
Ya,
pero yo me referia a que utilizaras el replace solo para el string que contiene el flotante, o sea así:

Código: Text
  1.  
  2. ..........
  3. string strsql = "Exec guardar'{0}',{1},{2}";
  4. strsql = string.Format(strsql,textBoxname.Text,
  5.                                     textBoxsalfij.Text.Replace(",","."),
  6.                                     textBoxsalhor.Text.Replace(",","."));
  7. .................
  8.  
  9.  
  10.  

Con esto te sigue sin funcionar?
[size=109]Ondo ibili, gutxi gastau eta bueltak amari[/size]
[size=109]Pasalo bien, gasta poco y las vueltas a tu madre[/size]

maikmr

  • Miembro MUY activo
  • ***
  • Mensajes: 112
    • Ver Perfil
Re: Error Al Mandar .flotates A La Bd Desde Aplicasion
« Respuesta #6 en: Martes 24 de Enero de 2006, 16:35 »
0
Mi estiado amigo Güorker!! Parece si aver funcionado, solo que ahora me queda una duda, xq yo lo que hacia es lo que hacer una convercion de tipos de datos xq al capturar el numero del textbox lo tomo como un string y le hacia un Float.Parse(TextBox.text) para entonces mandar a guardarse como lo que se supone debe de guardarse segun el tipo de dato que se espesifico en la tabla osea un float!!.

Para ser mas claros si yo que mande a guardar fue un string y la BD se supone que lo que hay que guardar era un float, ¿Como es que funciono? mi logica me dice q no deberia servir, pero por lo que veo estoy equivocado!!.

Grasias!! Muchas gracias!!. ahora ya puedo seguir  :comp: !

Güorker

  • Miembro MUY activo
  • ***
  • Mensajes: 383
    • Ver Perfil
Re: Error Al Mandar .flotates A La Bd Desde Aplicasion
« Respuesta #7 en: Miércoles 25 de Enero de 2006, 08:37 »
0
Hola,

A ver como te puedo explicar esto.....

Las instrucciones SQL son strings que se ejecutan contra la BD. Asi que en ese string va todo lo que tiene que ir, la palabra Insert, los nombres de columnas y los valores para esas columnas.
Asi que si una columna de una tabla es de tipo float,en el string de la instrucción hay que incluir ese valor; pero NO tiene que ser una variable de tipo float, sino un string con forma de float. y lo mismo para los enteros, fechas, etc.

No se si lo entenderas, pero no se como explicarlo mejor.
Saludos
[size=109]Ondo ibili, gutxi gastau eta bueltak amari[/size]
[size=109]Pasalo bien, gasta poco y las vueltas a tu madre[/size]

maikmr

  • Miembro MUY activo
  • ***
  • Mensajes: 112
    • Ver Perfil
Re: Error Al Mandar .flotates A La Bd Desde Aplicasion
« Respuesta #8 en: Miércoles 25 de Enero de 2006, 19:36 »
0
Bueno diay!!, sinceramente veo que mi curso de la univesidad  en bases de datos no fue suficiente, y me quedan muchas cosas por aprender, x ejm. eso que dices de que todo en SQL se manejan como strings no lo sabia.

Y pues la verdad todavia no me queda muy claro!!
Pero detodas formas muchisimas gracias Güorker!!