[ Foro de C# ]

Help, TextBox

31-Dec-2015 01:46
aaaaaaa bbbbbbb
5 Respuestas

Tengo una consulta que realizarte:

disculpa que te moleste, antes que nada, Feliz Navidad, y Mejor 2016.......Quiero consultarte, si sabes y es posible sobre lo siguiente:

Cuando selecciono una fila de GridView, los datos de esas filas pasan a otro webForm, a unos textBox.....Todos se llenan, y hay 4 de Ellos Enabled=true..........Lo que sucede es que uno de ellos no se llena, y me da un Error, porque luego de operar los que si se pueden se guardan en Base de Datos.

Que sucede que no se llena ese TextBox?.......(esto me interesa)..

Si sabes algo, podrias ayudarme??, Abrazo nos vemos...


31-Dec-2015 16:20
Carlos Rodriguez (+1)

Tienes el error y ejemplo del codigo?


31-Dec-2015 17:15
aaaaaaa bbbbbbb

Aqui esta el Codigo con los QuerySrting que provienen de lo seleccionado en GridView de otro WebForm: (el dato pasa de pagina, en la depuracion lo tengo en le QueryString de destino, pero alli mismo creo no me entra en el TextBox TextId_AlumMatCurso.Text:

El Error me lo larga en la Linea........ da.Fill(dt);..........y es Este: .......("El parámetro @idalumMatCurso no tiene un valor predeterminado.")

Tambien, hora me dice que cambio el archivo de origen, si deseo usarlo este que me sale en la depuracion, pero si no, me salia este otro Error: ("Imput string was not in correct Format"), en ese renglon del parametro (@idalumMatCurso)....


using System.Text;
using Datos;
using Negocio;

namespace Presentacion
{
    public partial class ABMNota : System.Web.UI.Page
    { 
       AccesoLogicaCargaNotas b = new AccesoLogicaCargaNotas();

       protected void Page_Load(object sender, EventArgs e)
       {
           if (!IsPostBack)
           {
               if (Request.QueryString["Id_Nota"] == null && Request.QueryString["Nota"] == null && Request.QueryString["Fecha"] == null && Request.QueryString["Tipo"] == null && Request.QueryString["Etapa"] == null && Request.QueryString["Dni"] == null && Request.QueryString["Apellido"] == null && Request.QueryString["Nombre"] == null && Request.QueryString["idAluMatCurso"] == null)
               {
                   return;
               }
               else
               {
                   Textid_Nota.Text = Convert.ToString(Request.QueryString["Id_Nota"]);
                   TextNota.Text = Convert.ToString(Request.QueryString["Nota"]);
                   TextFecha.Text = Convert.ToString(Request.QueryString["Fecha"]);
                   TextTipo.Text = Convert.ToString(Request.QueryString["Tipo"]);
                   TextEtapa.Text = Convert.ToString(Request.QueryString["Etapa"]);
                   TextDni.Text = Convert.ToString(Request.QueryString["Dni"]);
                   TextApellido.Text = Convert.ToString(Request.QueryString["Apellido"]);
                   TextNombre.Text = Convert.ToString(Request.QueryString["Nombre"]);
                   TextId_AlumMatCurso.Text = Convert.ToString(Request.QueryString["idAluMatCurso"]);
               }
           }
       }
        protected void ButtonAgregar_Click(object sender, EventArgs e)
        {
            string cadenaConexion = WebConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
            using (OleDbConnection cnn = new OleDbConnection(cadenaConexion))
            {
                cnn.Open();

                string query = @"INSERT INTO Notas (Nota, [Fecha Trim], Tipo, Etapa, Dni, Apellido, Nombre, id_alumMatCurso) VALUES (@Nota, @Fecha, @Tipo, @Etapa, @Dni, @Apellido, @Nombre, @idalumMatCurso)";

                OleDbCommand com = new OleDbCommand(query, cnn);
                          
                com.Parameters.AddWithValue("@Nota", Convert.ToInt32(TextNota.Text));
                com.Parameters.AddWithValue("@Fecha", Convert.ToDateTime(TextFecha.Text));
                com.Parameters.AddWithValue("@Tipo", TextTipo.Text);
                com.Parameters.AddWithValue("@Etapa", TextEtapa.Text);
                com.Parameters.AddWithValue("@Dni", Convert.ToInt32(TextDni.Text));
                com.Parameters.AddWithValue("@Apellido", TextApellido.Text);
                com.Parameters.AddWithValue("@Nombre", TextNombre.Text);
                com.Parameters.AddWithValue("@idalumMatCurso", Convert.ToInt32(TextId_AlumMatCurso.Text));

                OleDbDataAdapter da = new OleDbDataAdapter(com);

                DataTable dt = new DataTable();

                da.Fill(dt);

                GridView GridCargoNota = new GridView();

                GridCargoNota.DataSource = dt;
                GridCargoNota.DataBind();

           }
            
        }


Abrazo, mil millones de gracias, desde ya, que termines bien el año, Mejor 2016 ¡¡¡¡¡


04-Jan-2016 12:02
Nacho Cabanes (+83)

Si el error te lo da debido al formato de @idalumMatCurso, y su valor se toma de un textBox:


com.Parameters.AddWithValue("@idalumMatCurso", 
    Convert.ToInt32(TextId_AlumMatCurso.Text));


Eso puede fallar si "TextId_AlumMatCurso" está vacío o incluso si contiene valores no numéricos. El caso más sencillo de solucionar es el primero, bien forzando a que el formulario contenga valores en todos los campos, o bien añadiendo un cero a la izquierda antes de convertir a entero:


com.Parameters.AddWithValue("@idalumMatCurso", 
    Convert.ToInt32("0"+TextId_AlumMatCurso.Text));


 


04-Jan-2016 20:48
aaaaaaa bbbbbbb

Hola, con esta forma que me diste:

com.Parameters.AddWithValue("@idalumMatCurso",
   Convert.ToInt32("0"+TextId_AlumMatCurso.Text));

, me sale este error:


"No se puede agregar o cambiar el registro porque se necesita un registro relacionado en la tabla 'AlumMatCursos'".

El tema es que traigo un bvalor desde otro webform por QueryString, en la recuperacion aparece, pero no me entra en el TEXTBOX..................Por que sera????        Eso deberiera solucionar en este momento y finalizaria mi Tesis....


09-Jan-2016 17:06
Nacho Cabanes (+83)

Ese error ya suena a datos inconsistentes, no a problema de programación puro.

Aun así, puede venir del mismo lado: si el valor se convierte en 0 porque el TextBox no tiene nada (tiene una cadena vacía), buscará un registro con clave 0 en la base de datos, que probablemente no existirá. En ese caso, tienes que descubrir por qué no está llegando el valor al TextBox.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)