Cómo rellenar un conjunto de datos de archivo de host desde el adaptador de datos
El conjunto de datos es una representación residente en memoria de los datos que proporciona un modelo de programación relacional coherente independiente del origen de datos. El conjunto de datos representa un conjunto completo de datos, incluidas tablas, restricciones y relaciones entre las tablas. Dado que el conjunto de datos es independiente del origen de datos, un conjunto de datos puede incluir datos locales en la aplicación y también datos de varios orígenes de datos. La interacción con orígenes de datos existentes se controla a través del DataAdapter
objeto .
La HostfileDataAdapter.SelectCommand
propiedad es un HostFileCommand
objeto que recupera datos del origen de datos. El HostFileDataAdapter.Fill
método se usa para rellenar un conjunto de datos con los resultados de SelectCommand
. Fill
toma como argumentos un DataSet
objeto que se va a rellenar y un DataTable
objeto o el nombre del DataTable
objeto que se va a rellenar con las filas devueltas de SelectCommand
.
El Fill
método usa el HostFileDataReader
objeto implícitamente para devolver los nombres de columna y los tipos usados para crear las tablas en el DataSet
objeto y también los datos para rellenar las filas de las tablas del DataSet
objeto . Las tablas y columnas solo se crean cuando no existen; en caso contrario, Fill
utiliza el esquema existente de DataSet
. Las claves principales no se crean a menos que estén en el origen de datos y HostFileDataAdapter.MissingSchemaAction
se establezca MissingSchemaAction.AddWithKey
en . Si Fill
encuentra que existe una clave principal para una tabla, sobrescribe los datos del DataSet
objeto con datos del origen de datos para las filas donde los valores de la columna de clave principal coinciden con los de la fila devuelta desde el origen de datos. Si no se encuentra ninguna clave principal, los datos se anexan a las tablas del DataSet
objeto . Fill
usa cualquier asignación que pueda existir al rellenar el DataSet
objeto.
HostFileDataAdapter
Si encuentra varios conjuntos de resultados, crea varias tablas en el DataSet
objeto . Las tablas reciben de forma predeterminada el nombre secuencial TableN, comenzando por "Table" que representa Table0. Si se pasa un nombre de tabla como argumento al Fill
método , las tablas reciben un nombre predeterminado incremental de TableNameN, empezando por "TableName" para TableName0.
Puede usar cualquier número de HostFileDataAdapter
objetos con un DataSet
objeto . Cada DataAdapter
objeto se puede usar para rellenar uno o varios DataTable
objetos y resolver las actualizaciones de nuevo en el origen de datos pertinente. Puede agregar DataRelation
objetos y Constraint
a localmente DataSet
, lo que le permite relacionar datos de orígenes de datos diferentes. La comunicación con cada origen de datos se puede controlar usando uno o varios objetos DataAdapter
.
Para rellenar un conjunto de datos de archivo de host desde el adaptador de datos
Cree una nueva conexión al origen de datos mediante
HostFileConnection
.Abra la conexión mediante
HostFileConnection.Open
.Cree un comando SELECT que describa los datos que se van a recuperar con
HostFileCommand
.Cree un
HostFileDataAdapter
usoHostFileConnection
para interactuar con los datos almacenados.Cree un
DataSet
objeto para almacenar los datos localmente.Recupere los datos mediante el
HostFileDataAdapter
DataSet
objeto y elFill
comando .
Ejemplo
En el ejemplo de código siguiente se muestra cómo rellenar un conjunto de datos a través de .HostFileDataAdapter
En este ejemplo, los objetos ETCMLogging y HostFileUtils proporcionan la funcionalidad de registro y utilidad, respectivamente.
public void HFDAdapterCommandConstructor(ETCMLogging.Logging logging, string host, string ccsid, string cnstring, HostFileUtils.Utils.HostFileType hostfiletype)
{
HostFileUtils.Utils u = new HostFileUtils.Utils();
logging.LogInfo(host + "::" + hostfiletype.ToString());
HostFileUtils.Utils.MytestsVals[] Datavals = u.InitMytestsVals();
try
{
HostFileConnection cn = new HostFileConnection(cnstring);
cn.Open();
String SELECT = u.CreateSQLCommand(host, hostfiletype, cnstring, "SELECT", "MYTEST");
HostFileCommand hfc = new HostFileCommand(SELECT, cn);
HostFileDataAdapter hfda = new HostFileDataAdapter(hfc);
DataSet ds = new DataSet();
hfda.Fill(ds);
int[] cp = u.CheckColumns(SELECT, cn, logging);
u.ValidateDataSet(ds, logging, Datavals, cp);
cn.Close();
}
catch (Exception e)
{
logging.LogInfo(e.Message);
logging.LogFail(e.StackTrace);
}
}
En este ejemplo de código, el HostFileUtils
objeto y los cnstring
parámetros y ccsid
permiten crear rápidamente un comando SQL de prueba con la información pertinente.
Consulte también
Uso del adaptador y el conjunto de datos de archivos host
Adaptador de BizTalk para la configuración de Host Files