Insertar un Registro

13/11/2006 - 20:37 por Daniel Maldonado | Informe spam
Estimados, tengo una tabla que se llama Localidades y tiene dos campos
sencillisimos (En SqlServer)

localidades
idlocalidad Integer;
nombrelocalidad varchar;

y quiero insertar un Registro con este código y ejecuto el mismo y me dice.

"DEBE DECLARAR LA VARIABLE @paridlocalidad"

y sin embargo la variable esta definida.

Que estoy haciendo mal ???.



/* Creo la Conexión y la Abro */

string Cadena = "Auto Translate=True;Integrated Security=SSPI;User
ID=sa;Data Source=PC_TANGONEW;Tag with column collation when
possible=False;Initial Catalog=CSHARP;Use Procedure for
Prepare=1;Provider='SQLOLEDB.1';Persist Security Info=False;Workstation
ID=DIABLA;Use Encryption for Data=False;Packet Size@96;"; OleDbConnection
MiConexion = new OleDbConnection(Cadena); MiConexion.Open();

MessageBox.Show(MiConexion.State.ToString());

/* Creo el ComandoSQL */

string strCadenaInsert = "insert into localidades
(idlocalidad,nombrelocalidad) values (@paridlocalidad,@parnombrelocalidad)";

OleDbCommand ComandoSQL = new OleDbCommand(strCadenaInsert,MiConexion);

/* A esos parametros los agrego al comando SQL */

ComandoSQL.Parameters.Add(new
OleDbParameter("paridlocalidad",OleDbType.Integer));

ComandoSQL.Parameters.Add(new
OleDbParameter("parnombrelocalidad",OleDbType.VarChar));


try

{

ComandoSQL.ExecuteNonQuery();

}

catch (System.Data.OleDb.OleDbException exc4)

{

MessageBox.Show(exc4.Message);

}

finally

{

MiConexion.Close();

}
 

Leer las respuestas

#1 Bela Istok
13/11/2006 - 21:17 | Informe spam
Hola, 2 cosas:

1.- Porque utilizas Oledb* en ves de SQL* si estas conectandote contra SQL
Server.
2.- Cuando les pases los parametros pon los @ al principio para decirle que
esas son las variables ex: new
OleDbParameter("@paridlocalidad",OleDbType.Integer));



Saludos,

Bela Istok

"Daniel Maldonado" wrote in message
news:
Estimados, tengo una tabla que se llama Localidades y tiene dos campos
sencillisimos (En SqlServer)

localidades
idlocalidad Integer;
nombrelocalidad varchar;

y quiero insertar un Registro con este código y ejecuto el mismo y me
dice.

"DEBE DECLARAR LA VARIABLE @paridlocalidad"

y sin embargo la variable esta definida.

Que estoy haciendo mal ???.



/* Creo la Conexión y la Abro */

string Cadena = "Auto Translate=True;Integrated Security=SSPI;User
ID=sa;Data Source=PC_TANGONEW;Tag with column collation when
possible=False;Initial Catalog=CSHARP;Use Procedure for
Prepare=1;Provider='SQLOLEDB.1';Persist Security Info=False;Workstation
ID=DIABLA;Use Encryption for Data=False;Packet ;";
OleDbConnection
MiConexion = new OleDbConnection(Cadena); MiConexion.Open();

MessageBox.Show(MiConexion.State.ToString());

/* Creo el ComandoSQL */

string strCadenaInsert = "insert into localidades
(idlocalidad,nombrelocalidad) values
(@paridlocalidad,@parnombrelocalidad)";

OleDbCommand ComandoSQL = new OleDbCommand(strCadenaInsert,MiConexion);

/* A esos parametros los agrego al comando SQL */

ComandoSQL.Parameters.Add(new
OleDbParameter("paridlocalidad",OleDbType.Integer));

ComandoSQL.Parameters.Add(new
OleDbParameter("parnombrelocalidad",OleDbType.VarChar));


try

{

ComandoSQL.ExecuteNonQuery();

}

catch (System.Data.OleDb.OleDbException exc4)

{

MessageBox.Show(exc4.Message);

}

finally

{

MiConexion.Close();

}





Preguntas similares