Buenas, estoy realizando las siguientes funciones:
//id=1, sqlSelect="Select *from Table where id=@id"
public consulta (int id, string sqlSelect){
SqlDataReader reader=null;
try {
conexionBD.Open();
SqlCommand sqlSelect= new SqlCommand(sqlSelect,conexionBD);
sqlSelect.Parameters.Add("@id",SqlDbType.Int);
sqlSelect.Parameters["@id"].Value=id;
reader=sqlSelect.ExecuteReader(CommandBehavior.CloseConnection);
}
while(reader.Read()) {
if (!reader.IsDBNull(0))
id = (int)(reader["id"]);
if (!reader.IsDBNull(1))
name = (string)(reader["name"]);
if (!reader.IsDBNull(2))
apellido = (string)(reader["apellido"]);
}
grabar(name,apellido);
}
public grabar(string name, string apellido){
try {
conexionBD.Close();
conexionBD.Open();
SqlCommand sqlInsert = new SqlCommand("Select max(id)+1 From
Table",conexionBD);
SqlDataReader identificadorReader = sqlInsert.ExecuteReader();
if (identificadorReader.Read()) {
if (!identificadorReader.IsDBNull(0))
id = identificadorReader.GetInt32(0);
else
id = 1;
}
else
id = 1;
identificadorReader.Close();
sqlInsert.CommandText="Insert into Table (id,name,apellido) Values
(@id,@name,@apellido)";
sqlInsert.Parameters.Add("@id",SqlDbType.Int);
sqlInsert.Parameters.Add("@name",SqlDbType.VarChar);
sqlInsert.Parameters.Add("@apellido",SqlDbType.VarChar);
sqlInsert.ExecuteNonQuery();
}
Bueno lo que quiero realizar, es una duplicacion de regristros de una tabla. De acuerdo a las funciones anteriores, logro duplicar el registro, pero solo 1 es decir. si la funcion
consulta me retorna 3 regristros, solo duplico el primer registro, pues cuando retorna la funcion a
while(reader.Read()) sale por que no encuentra mas registros.
REalmente no se que estare haciendo mal, o si este procedimiento es valedero, espero pueden colaborarme....
gracias
Juan D