
22/11/2011, 09:41
|
 | | | Fecha de Ingreso: abril-2010 Ubicación: Neuquen
Mensajes: 461
Antigüedad: 14 años, 10 meses Puntos: 24 | |
Transaccion SQL y C# Hola que tal, les comento la estructura que estoy manejando, tengo 3 clases:
Recurso, Personal y Vehiculo
Estas ultimas dos heredan los datos de la clase recurso, las tengo definida de la siguiente manera:
RECURSO:
Código:
public class recurso
{
bool nuevo = true;
protected bool bHabilitado;
protected string sCodigoBarra;
protected int idEmpresa;
//protected Imagen?
protected string dFechaDesde;
protected string dFechaHasta;
protected string sObservaciones;
public bool BHabilitado
{
get { return bHabilitado; }
set { bHabilitado = value; }
}
// Propiedad del atributo Codigo de barra
public string SCodigoBarra
{
get { return sCodigoBarra; }
set { sCodigoBarra = value; }
}
// Propiedad del atributo Empresa
public int IdEmpresa
{
get { return idEmpresa; }
set { idEmpresa = value; }
}
// Propiedad del atributo Fecha desde
public string DFechaDesde
{
get { return dFechaDesde; }
set { dFechaDesde = value; }
}
// Propiedad del atributo Foto
public string DFechaHasta
{
get { return dFechaHasta; }
set { dFechaHasta = value; }
}
// Propiedad del atributo Observaciones
public string SObservaciones
{
get { return sObservaciones; }
set { sObservaciones = value; }
}
//Metodos de la CLASE!!!!!
//Metodo para CARGAR
public bool Existe(string Documento)
{
bool esta = true;
CONEXION datoempleado = new CONEXION();
datoempleado.Stringconetion = datoempleado.CargarStringConnection("C:\\A.txt");
datoempleado.Conectar();
string sql = "Select count (Dni) from Empleados where Dni = " + Documento;// con los ' no anda
int valor = Convert.ToInt32(datoempleado.TraerValorSql(sql));
if (valor == 0)
{
esta = false;
}
return esta;
}
public void GuardarRecurso()
{
string sql = "";
CONEXION datorecurso = new CONEXION();
datorecurso.Stringconetion = datorecurso.CargarStringConnection("C:\\A.txt");
datorecurso.Conectar();
if (nuevo == false)
{
/*sql = ("update empleados set Apellido='" + apellido + "' , Nombre='" + nombre + "',Nacionalidad='" + nacionalidad + " ',Telefono=" + telefono + ",Direccion = '" + direccion + "', Localidad='" + localidad + "',Provincia='" + provincia + "',Sueldo=" + sueldo + ",Ocupacion='" + ocupacion + "' where DNI=" + dni);
datoempleado.InsertarSQL(sql);*/
}
else
{
sql = ("INSERT INTO [controlHabilitacion].[dbo].[recurso]([sCodigoBarra],[idEmpresa],[bHabilitado],[dFechaDesde],[dFechaHasta],[sObservaciones]) Values ('" + sCodigoBarra + "','" + idEmpresa + "','" + bHabilitado + "' ,'" + dFechaDesde + "','" + dFechaHasta + "','" + sObservaciones + "')");
sql += " Select @@identity ";
datorecurso.InsertarSQL(sql);
}
}
}
PERSONAL:
Código:
public class personal:recurso
{
bool nuevo = false;
protected string sCuil;
protected string sDni;
protected string sNombre;
protected string sApellido;
protected string dFechaNacimiento;
protected string sFunsion;
protected string sConvenio;
protected int bDirecto;
protected bool bHabilitadoParaConducir;
/*public personal(string Cuil, string Dni, string Nombre, string Apellido,string FechaNacimiento,string Funsion,string Convenio,bool Directo,bool HabilitadoParaConducir,bool Habilitado,string CodigoBarra,int Empresa,string FechaDesde,string FechaHasta,string Observaciones):base(Habilitado,CodigoBarra,Empresa,FechaDesde,FechaHasta,Observaciones)
{
sCuil = Cuil;
sDni = Dni;
sNombre = Nombre;
sApellido = Apellido;
}*/
//Propiedad del atributo Cuil
public string SCuil
{
get { return sCuil; }
set { sCuil = value; }
}
//Propiedad del atributo Dni
public string SDni
{
get { return sDni; }
set { sDni = value; }
}
// Propiedad del atributo Nombre
public string SNombre
{
get { return sNombre; }
set { sNombre = value; }
}
// Propiedad del atributo Apellido
public string SApellido
{
get { return sApellido; }
set { sApellido = value; }
}
// Propiedad del atributo Fecha Nacimiento
public string DFechaNacimiento
{
get { return dFechaNacimiento; }
set { dFechaNacimiento = value; }
}
// Propiedad del atributo Funsion
public string SFunsion
{
get { return sFunsion; }
set { sFunsion = value; }
}
public string SConvenio
{
get { return sConvenio; }
set { sConvenio = value;}
}
public int BDirecto
{
get { return bDirecto; }
set { bDirecto = value; }
}
public bool BHabilitadoParaConducir
{
get { return bHabilitadoParaConducir; }
set { bHabilitadoParaConducir = value; }
}
//Metodos de la CLASE!!!!!
//Metodo para CARGAR
public void Cargar(string Dni)
{
nuevo = false;
CONEXION datoempleado = new CONEXION();
datoempleado.Stringconetion = datoempleado.CargarStringConnection("C:\\A.txt");
datoempleado.Conectar();
DataTable dt = datoempleado.TraerDataTableSQL("select * from Empleados where DNI=" + Dni);
CargarR(dt.Rows[0]);
}
internal void CargarR(DataRow Row)
{
/*dni = Row["Dni"].ToString();
nombre = Row["Nombre"].ToString();
apellido = Row["Apellido"].ToString();
nacionalidad = Row["Nacionalidad"].ToString();
telefono = Row["Telefono"].ToString();
Direccion = Row["Direccion"].ToString();
localidad = Row["Localidad"].ToString();
provincia = Row["Provincia"].ToString();
ocupacion = Row["Ocupacion"].ToString();
sueldo = Row["Sueldo"].ToString();*/
}
public bool Existe(string Documento)
{
bool esta = true;
CONEXION datoempleado = new CONEXION();
datoempleado.Stringconetion = datoempleado.CargarStringConnection("C:\\A.txt");
datoempleado.Conectar();
string sql = "Select count (Dni) from Empleados where Dni = " + Documento;// con los ' no anda
int valor = Convert.ToInt32(datoempleado.TraerValorSql(sql));
if (valor == 0)
{
esta = false;
}
return esta;
}
public void GuardarPersonal()
{
/*string sql = "";
CONEXION datoempleado = new CONEXION();
datoempleado.Stringconetion = datoempleado.CargarStringConnection("C:\\A.txt");
datoempleado.Conectar();
if (nuevo == false)
{
sql = ("update empleados set Apellido='" + apellido + "' , Nombre='" + nombre + "',Nacionalidad='" + nacionalidad + " ',Telefono=" + telefono + ",Direccion = '" + direccion + "', Localidad='" + localidad + "',Provincia='" + provincia + "',Sueldo=" + sueldo + ",Ocupacion='" + ocupacion + "' where DNI=" + dni);
datoempleado.InsertarSQL(sql);
}
else
{
sql = ("INSERT INTO [Restaurante].[dbo].[Empleados]([DNI],[Apellido],[Nombre],[Nacionalidad],[Telefono],[Direccion],[Localidad],[Provincia],[Sueldo],[Ocupacion]) Values ('" + dni + "','" + apellido + "','" + nombre + "' ,'" + nacionalidad + "','" + telefono + "','" + direccion + "','" + localidad + "','" + provincia + "'," + sueldo + ",'" + ocupacion + "')");
sql += " Select @@identity ";
datoempleado.InsertarSQL(sql);
}*/
}
}
Y Vehiculo que tiene sus respectivos datos, el tema es que al momento de insertar un Recurso, tengo que tomar este ultimo ID insertardo, para seguir con el proceso e insertar los datos que le corresponden a personal, con su respectivo id. Se que esto se hace con una transaccion, donde pueda ejecutar las dos inserciones a la vez, y para poder obtener el ultimo ID, mi idea es desarrollar una funsion INSERT, que se use para transacciones, (GENERALIZADA) pero al no conocer estos comandos en C# y al no entender bien el proceso de transaccion, me gustaria acudir a la gente del foro, para que me de una mano para solucionar este problema. Si hay alguna otra manera bienvenida sea! agradezco su ayuda! y saludos!!  |