Преобразовать параметр DataRowView - PullRequest
0 голосов
/ 01 июля 2018

Я пытался вставить этот код, но все еще не работает "не удалось преобразовать DataRowView в in16", я попытался с int32, intParse (), Convert32 () без успеха.

Кнопка C #:

private void btnaddPostulante_Click(object sender, RoutedEventArgs e)
    {
        using (OracleConnection ora = new OracleConnection(con))
        {
            try
            {
                ora.Open();
                OracleCommand comando = new OracleCommand("insertarPostulante", ora);
                comando.CommandType = CommandType.StoredProcedure;
                comando.Parameters.Add("persona_rut", OracleType.VarChar).Value = txtrutPos.Text;
                comando.Parameters.Add("persona_apellido_paterno", OracleType.VarChar).Value = txtappPos.Text;
                comando.Parameters.Add("persona_apellido_materno", OracleType.VarChar).Value = txtapmPos.Text;
                comando.Parameters.Add("persona_nombre", OracleType.VarChar).Value = txtnombrePos.Text;
                comando.Parameters.Add("persona_fecha_nacimiento", OracleType.DateTime).Value = datePicker1.SelectedDate;
                comando.Parameters.Add("id_nacionalidad", OracleType.Int16).Value = combonacionalidad.SelectedItem;
                //fotos
                comando.Parameters.Add("ano_subsidio", OracleType.Int16).Value = int.Parse(txtanoSubsidio.Text);
                comando.Parameters.Add("id_estado_civil", OracleType.Int16).Value = comboestadoc.SelectedItem;
                comando.Parameters.Add("telef_domicilio", OracleType.Int16).Value = int.Parse(txtfonoDomicilio.Text);
                comando.Parameters.Add("telef_movil", OracleType.Int16).Value = int.Parse(txtfonoMovil.Text);
                comando.Parameters.Add("telef_trabajo", OracleType.Int16).Value = int.Parse(txtfonoTrabajo.Text);
                comando.Parameters.Add("email", OracleType.VarChar).Value = txtemail.Text;
                comando.Parameters.Add("codigo_postal", OracleType.Int16).Value = int.Parse(txtcodigoPostal.Text);
                comando.Parameters.Add("proceso_divorcio", OracleType.Char).Value = procDivorcio.SelectedItem.ToString();
                comando.Parameters.Add("debe_acreditar_carga", OracleType.Char).Value = comboAcredCarga.SelectedItem.ToString();
                comando.Parameters.Add("es_indigena", OracleType.Char).Value = acreIndigena.SelectedItem.ToString();
                comando.Parameters.Add("posee_titulo", OracleType.Char).Value = acreEstudios.SelectedItem.ToString();
                comando.Parameters.Add("calle", OracleType.VarChar).Value = txtcalle.Text;
                comando.Parameters.Add("numero", OracleType.Int16).Value = int.Parse(txtnumero.Text);
                comando.Parameters.Add("block", OracleType.VarChar).Value = txtblock.Text;
                comando.Parameters.Add("nro_dpto", OracleType.Int16).Value = int.Parse(txtdept.Text);
                comando.Parameters.Add("manzana", OracleType.VarChar).Value = txtmanzana.Text;
                comando.Parameters.Add("sitio", OracleType.VarChar).Value = txtsitio.Text;
                comando.Parameters.Add("nro_piso", OracleType.Int16).Value = int.Parse(txtnropisos.Text);
                comando.Parameters.Add("id_comuna", OracleType.Int16).Value = combocomuna.SelectedItem;
                comando.Parameters.Add("conyuge_rut", OracleType.VarChar).Value = txtrutCon.Text;
                comando.Parameters.Add("nombre_titulo", OracleType.VarChar).Value = txttitulo.Text;
                comando.Parameters.Add("nombre_institucion", OracleType.VarChar).Value = txtinstitucion.Text;
                comando.Parameters.Add("id_tipo_titulo", OracleType.Char).Value = comboTipoTitulo.SelectedItem.ToString();
                comando.Parameters.Add("id_direccion", OracleType.Int16).Value = int.Parse(txtidDireccion.Text);
                comando.ExecuteNonQuery();
                MessageBox.Show("Postulante Agregado");


            }
            catch(Exception ex)
            {
                MessageBox.Show("A handled exception just occurred: " + ex.Message, "Exception Sample", MessageBoxButton.OK, MessageBoxImage.Warning);
            }
            ora.Close();
        }
    }

Процедура правильной работы.

1 Ответ

0 голосов
/ 01 июля 2018

, если вы хотите преобразовать его в int16, попробуйте следующий вспомогательный метод

 public static int MyToInt16(object o)
    {
        if (o == DBNull.Value || o == null)
            return 0;

        return Convert.ToInt16(o);
    }

использование

comando.Parameters.Add("ano_subsidio", OracleType.Int16).Value = MyToInt16(txtanoSubsidio.Text);
...