C sharp - Conversion explicita Byte[]

 
Vista:

Conversion explicita Byte[]

Publicado por AUGUSTO ESTEBAN (3 intervenciones) el 06/03/2005 10:23:22
saludos, estoy parendiendo a usar la clase stream para acceso a archivos binarios desde bases de datos y me trrunque aqui,
Byte[] result = (Byte[])command.ExecuteScalar();
esta linea me provoca un InvalidCastException, dicee que la conversion especificada no es valida, en varios manuales he visto que trabajan de manera similar pero asumo que a ellos les funciona, alguien sabe porque a mi no me funciona?, les envio el codigo

NpgsqlConnection conn = new NpgsqlConnection("Server=127.0.0.1;Port=5432;User Id=augusto;Password=augustoX;Database=prueba;");
conn.Open();
FileStream fs = new FileStream("d:\\texto.txt", FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(new BufferedStream(fs));
Byte[] bytes = br.ReadBytes((Int32)fs.Length);
MessageBox.Show(fs.Length.ToString());
br.Close();
fs.Close();
NpgsqlCommand command = new NpgsqlCommand("insert into tableBytea(field_bytea) values(:bytesData)", conn);
NpgsqlParameter param = new NpgsqlParameter(":bytesData", DbType.Binary);
param.Value = bytes;
command.Parameters.Add(param);
command.ExecuteNonQuery();
command = new NpgsqlCommand("select field_serial, field_bytea from tablebytea where field_serial = (select max(field_serial) from tablebytea);", conn);
Byte[] result = (Byte[])command.ExecuteScalar();//AQUI AQUI
fs = new FileStream("d:\\texto_de_database.txt", FileMode.Create, FileAccess.Write);
BinaryWriter bw = new BinaryWriter(new BufferedStream(fs));
bw.Write(result);

bw.Flush();
fs.Close();
bw.Close();
conn.Close();
//GRACIAS DE ANTEMANO AMIGOS
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 158
Bronce
Ha disminuido 1 puesto en C sharp (en relación al último mes)
Gráfica de C sharp

RE:Conversion explicita Byte[]

Publicado por Yamil Bracho (1164 intervenciones) el 06/03/2005 18:01:47
Antes que nada coloca un bloque try catch en tu programa para capturar la excepcion que te esta arrojando . Otra cosa es que ExecuteScalar retorna un solo item y no un arreglo, es decir te quedaria algo como :

byte b = command.executeScalar();
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar