Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/11/2009, 17:12
th3r0rn
 
Fecha de Ingreso: noviembre-2007
Mensajes: 504
Antigüedad: 17 años, 6 meses
Puntos: 2
Problema al actualizar un registro desde asp

Hola tengo un problema hice un pequeño programita para alamacenar algunos registros en una base de datos de oracle, Hace Inserts,Selects y Deletes el problema es que cuando quiero actualizar un registro me da error, para actualizarlo tengo un campo numerico llamado clabe el cual es llave primaria:
Código:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;


public partial class _Default : System.Web.UI.Page
{
    AccesoDatos ad = new AccesoDatos();
    DataSet ds = new DataSet();
    protected void Page_Load(object sender, EventArgs e)
    {
    

    }
    protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
    {

    }
    protected void TextBox2_TextChanged(object sender, EventArgs e)
    {

    }
    protected void Button1_Click(object sender, EventArgs e)//Insertar Datos <====
    {
        int.Parse(TextBox7.Text);
        string sqlcad = "insert into cg_personas(nombre,estado,ciudad,clabe) VALUES('" + TextBox1.Text + "','" + TextBox2.Text + "','" + TextBox3.Text + "',"+TextBox7.Text+")";
        int ejecutar = ad.ejecutar(sqlcad);
      
        if (ejecutar > 0)
        {
            
            Label1.Text = "Se grabaron los datos";
        }
        else
        {
        Label1.Text="NO SE GRABARON LOS DATOS";
        }

    }
    protected void Button2_Click(object sender, EventArgs e)//Mostrar datos <===
    {
        string sqlcad = "SELECT * FROM cg_personas";
        ds = ad.consultarDS(sqlcad);
        GridView1.DataSource = ds.Tables[0];
        GridView1.DataBind();
    }
    protected void Button3_Click(object sender, EventArgs e)//Eliminar Datos <===
    {
       // int.Parse(TextBox7.Text);
        string sqlcad="DELETE FROM cg_personas WHERE clabe="+TextBox7.Text+"";
        ds = ad.consultarDS(sqlcad);
        int ejecutar = ad.ejecutar(sqlcad);
        if (ejecutar > 0)
        {
            Label1.Text = "Se elimino correctamente!";
        }
        else 
        {
            Label1.Text = "NO SE PUEDO ELIMINAR";
        }
     
    }


    protected void Button4_Click(object sender, EventArgs e)//Actualizar Datos <===
    {
        int.Parse(TextBox7.Text);
        string sqlcad="UPDATE FROM cg_personas SET nombre='"+TextBox1.Text+"',estado='"+TextBox2.Text+"',ciudad='"+TextBox3.Text+"' WHERE clabe="+int.Parse(TextBox7.Text)+"";
        ds = ad.consultarDS(sqlcad);
        int ejecutar = ad.ejecutar(sqlcad);
        if (ejecutar > 0)
        {
            Label1.Text = "Se actualizaron los datos";
        }
        else 
        {
            Label1.Text = "No se puedo actualizar";
        }
    }
}
Cuando intento actualizar un registro mr dice el mensaje que puse en la consulta: NOSE PUEDE ACTUALIZAR.
la clase quee stoy usando es:
Código:
using System;
using System.Data;
using System.Collections.Generic;
using System.Data.Odbc;
using System.Text;
using System.Data.OracleClient;
using System.Diagnostics;


public class AccesoDatos
{
    private string connString = "Data Source=127.0.0.1/XE; User Id=SYSTEM; Password=placabase;";
    private OracleConnection con = new OracleConnection();
    public void conectar()
    {
        try
        {
            con.ConnectionString = connString;
            con.Open();
        }
        catch (Exception e)
        {
            Trace.WriteLine(e.ToString());
        }
    }
    public void desconectar()
    {
        try
        {
            con.Close();
        }
        catch (Exception e)
        {
            Trace.WriteLine(e.ToString());
        }
    }

    public int ejecutar(string sqlCad)
    {
        int resultado = 0;
        try
        {
            conectar();
            //OdbcCommand comando = new OdbcCommand(sqlCad, con);
            OracleCommand comando = new OracleCommand(sqlCad, con);
            resultado = comando.ExecuteNonQuery();
        }
        catch (Exception e)
        {
            Trace.WriteLine(e.ToString());
        }
        finally
        {
            desconectar();
        }
        return resultado;
    }

    public DataSet consultarDS(string sqlcad)
    {
        DataSet resultado = new DataSet();
        try
        {
            conectar();
            //OdbcDataAdapter da = new OdbcDataAdapter(sqlcad, con);
            OracleDataAdapter da = new OracleDataAdapter(sqlcad, con);
            da.Fill(resultado);
        }
        catch (Exception e)
        {
            Trace.WriteLine(e.ToString());
        }
        return resultado;
    }

    public bool datoInsertado(string dato, string nombreTabla, string nombreCampo, string tipoCampo)
    {
        DataSet ds = new DataSet();
        string sqlCad = "";
        bool insertado = false;
        if (tipoCampo == "numerico")
        {
            sqlCad = "select * from " + nombreTabla + " where " + nombreCampo + "=" + dato + "";
        }
        else
        {
            sqlCad = "select * from " + nombreTabla + " where " + nombreCampo + "='" + dato + "'";
        }
        ds = consultarDS(sqlCad);
        if (ds.Tables.Count > 0)
        {
            if (ds.Tables[0].Rows.Count > 0)
            {
                insertado = true;
            }
        }
        return insertado;
    }


    public bool datoInsertado2(string dato, string dato2, string nombreTabla, string nombreCampo, string nombreCampo2, string tipoCampo, string tipoCampo2)
    {
        DataSet ds = new DataSet();
        string sqlCad = "";
        bool insertado = false;
        if ((tipoCampo == "numerico") && (tipoCampo2 == "numerico"))
        {
            sqlCad = "select * from " + nombreTabla + " where " + nombreCampo + "=" + dato + " and " + nombreCampo2 +
               "=" + dato2;
        }
        else if ((tipoCampo == "numerico") && (tipoCampo2 != "numerico"))
        {
            sqlCad = "select * from " + nombreTabla + " where " + nombreCampo + "=" + dato + " and " + nombreCampo2 +
               "='" + dato2 + "'";
        }
        else if ((tipoCampo != "numerico") && (tipoCampo2 == "numerico"))
        {
            sqlCad = "select * from " + nombreTabla + " where " + nombreCampo + "='" + dato + "' and " + nombreCampo2 +
               "=" + dato2;
        }
        else
        {
            sqlCad = "select * from " + nombreTabla + " where " + nombreCampo + "='" + dato + "' and " + nombreCampo2 +
                "='" + dato2 + "'";
        }
        ds = consultarDS(sqlCad);
        if (ds.Tables.Count > 0)
        {
            if (ds.Tables[0].Rows.Count > 0)
            {
                insertado = true;
            }
        }
        return insertado;
    }
}
Me pudieran decir si ven algo mal? :(