Buscar Valores en una base de datos desde InfoPath 2010 programáticamente.

Para realizar búsquedas en una base datos desde InfoPath en 3 pasos.
1. Crea la tabla en la base de datos donde tienes toda la información
image
2. Crea un formulario en InfoPath con los campos que necesita extraer de la base de datos.
image
3. Finalmente agregue el siguiente código en el botón buscar,
Click  derecho en el botón y seleccionar propiedades
image
Seleccionar Edit Form Code
image

Pegar el código, es necesario agregar la librería, siguiente y la referencia System.Data.
using System.Data.SqlClient;
   1:  

   2:             XPathNavigator nav = CreateNavigator();

   3:             XPathNavigator nav1 = CreateNavigator();

   4:             XPathNavigator nav2 = CreateNavigator();

   5:             XPathNavigator nav3 = CreateNavigator();

   6:             XPathNavigator nav4 = CreateNavigator();

   7:             XPathNavigator nav5 = CreateNavigator();

   8:             XPathNavigator nav6 = CreateNavigator();

   9:             XPathNavigator nav7 = CreateNavigator();

  10:             XPathNavigator nav8 = CreateNavigator();

  11:  

  12:             // Obtener el valor a buscar desde el campo de infopath

  13:             XPathNavigator ValorRadicado = nav.SelectSingleNode("/my:Encuestas/my:A/my:A11RadicadoValor", NamespaceManager);

  14:  

  15:             //Cadena de Conexión

  16:             string strConn = @"Server=NombreServer;Database=BasedeDatos;User Id=usuario;Password=Password;";

  17:             //nueva sql conexión

  18:             SqlConnection conn = new SqlConnection(strConn);

  19:  

  20:             //armar la consulta de sql 

  21:             SqlCommand cmd = new SqlCommand("SELECT * FROM Institucion WHERE Radicado = '" + ValorRadicado.ToString() + "'", conn);

  22:  

  23:             //abrir conexión, ejecutar comando, colocar el resultado en el sqldatareader 

  24:             SqlDataReader reader;

  25:             try

  26:             {

  27:                 conn.Open();

  28:                 reader = cmd.ExecuteReader();

  29:                 if (reader.HasRows)

  30:                 {

  31:                     while (reader.Read())

  32:                     {

  33:                         //Asignar los valores del resultaddo de la consulta en campos del formulario

  34:                         nav1.SelectSingleNode("/my:Encuestas/my:InstitucionEducativa/my:A14Region", NamespaceManager).SetValue(reader[0].ToString());

  35:                         nav2.SelectSingleNode("/my:Encuestas/my:InstitucionEducativa/my:A112Dpto", NamespaceManager).SetValue(reader[2].ToString());

  36:                         nav3.SelectSingleNode("/my:Encuestas/my:InstitucionEducativa/my:A11InstitucionEduc", NamespaceManager).SetValue(reader[5].ToString());

  37:                         nav4.SelectSingleNode("/my:Encuestas/my:InstitucionEducativa/my:A13Municipio", NamespaceManager).SetValue(reader[3].ToString());

  38:                         nav5.SelectSingleNode("/my:Encuestas/my:InstitucionEducativa/my:A15DaneSede", NamespaceManager).SetValue(reader[4].ToString());

  39:                         nav6.SelectSingleNode("/my:Encuestas/my:InstitucionEducativa/my:A16NombreSede", NamespaceManager).SetValue(reader[6].ToString());

  40:                         nav7.SelectSingleNode("/my:Encuestas/my:InstitucionEducativa/my:A17Zona", NamespaceManager).SetValue(reader[7].ToString());

  41:                         nav8.SelectSingleNode("/my:Encuestas/my:InstitucionEducativa/my:A18TipoSede", NamespaceManager).SetValue(reader[8].ToString());

  42:                        

  43:                     }

  44:                 }

  45:             }

  46:             finally

  47:             {

  48:                 conn.Close();

  49:             }

  50:         }

Resultado

image

Entradas más populares de este blog

Extender el periodo de Evalución hasta 240 días en SQL Server y SharePoint Server

Ventajas de SharePoint Server 2016 - Infraestructura