Hola amigos!! tengo un problema al almacenar el ultimo id recuperado de una tabla de sql server, ojala me puedan ayudar con este problema.
Gracias!!
Micodigo es el siguiente:
Código C++:
Ver originalpublic static bool Genero(Genero objGenero, Artista objArtista)
{
bool resultado = false;
//Se crea la cadena deconexion
string CadenaConexion = ConfigurationManager.ConnectionStrings["audvid"].ConnectionString;//Conexion de BD en archivo app.config
if (CadenaConexion == null) return resultado;
//Ahora creamos lo objetos de conexion
SqlConnection Cnx = new SqlConnection(CadenaConexion);
SqlCommand Cmd = new SqlCommand(string.Empty, Cnx);
SqlParameter Paramer;
SqlTransaction Transac;
SqlDataAdapter Adapter = new SqlDataAdapter(string.Empty, Cnx);
DataSet DSet = new DataSet();
int IdGenero = 0;
//Ejecucion del query. Bloque la conexion para evitar la concurrencia
using (Cnx)
{
//Checare el acceso a datos
try
{
Cnx.Open();
Transac = Cnx.BeginTransaction();
}
catch (SqlException ex)
{
BitacoraTexto.Escribe(ex.Message);
return resultado;
}
//Con la ejecucion abierta ejecutamos el query usando transacciones.
try
{
//Preparamos comando de transaccion
Cmd.Transaction = Transac;
//leemos la consulta.
Cmd.CommandText = SqlInsert.Genero;
//Agregamos parametros a esa consulta
Paramer = new SqlParameter("@Genero", objGenero.NombreGenero);
Cmd.Parameters.Add(Paramer);
//Ejecutamos query
Cmd.ExecuteNonQuery();
Cmd.Parameters.Clear();
//Obtengo Id del registro recien insertado
Cmd.CommandText = new SqlSelect().RecuperaIdGenero;
Adapter.SelectCommand = Cmd;
Adapter.SelectCommand.Connection = Cnx;
Adapter.Fill(DSet);
IdGenero = (int)DSet.Tables[0].Rows[0][0];//La conversión especificada no es válida.
El error que me sale es en la ultima linea que es el siguiente:
//La conversión especificada no es válida.
Mi query es el siguiente:
Código C++:
Ver originalclass SqlSelect
{
public string RecuperaIdGenero
{
get
{
return "SELECT ISNULL(MAX(IdGenero),0) FROM Genero";
}
}
}
El cual funciona, realmente me regresa el ultimo ID de la tabla, lo probe en sqlserver y sin problemas, el problema esta es como almaceno ese dato en mi variable.
De antemano muchas gracias =)