
27/11/2009, 17:12
|
| | 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? :( |