Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
HostFileDataAdapter.Update se llama para resolver los cambios de un objeto DataSet de nuevo al origen de los datos. El Update método, al igual que el Fill método , toma una instancia de DataSet como argumento .
Para actualizar el sistema de archivos del host con el adaptador de datos
Cree un
DataSetobjeto que contenga la información que desea actualizar.O bien, puede sobrescribir los datos de un objeto existente
DataSetcon una llamada aDataSet.AcceptChanges.Tenga en cuenta que llamar al objeto
AcceptChanges,DataSet,DataTableoDataRowhace que todos los valores originales de un objetoDataRowse sobrescriban con los valores actuales deDataRow. Si los valores de campo que identifican la fila como única se han modificado, después de llamar aAcceptChanges, los valores originales ya no coinciden con los valores del origen de datos.Además, puede usar
HostFileCommandparámetros para especificar valores de entrada y salida para una instrucción SQL para cada fila modificada de unDataSetobjeto .Llame a
HostFileDataAdapter.Update, con el objeto DataSet que desea actualizar.Cuando se llama al
Updatemétodo , analizaHostFileDataAdapterlos cambios realizados y ejecuta el comando adecuado. Si se llama aUpdatey el comando correspondiente a una actualización determinada no existe (por ejemplo, no hay un comandoDeleteCommandpara las filas eliminadas), se inicia una excepción.Si desea actualizar su conjunto de datos con datos, llame a
HostFileDataAdapter.Fillen su objetoDataSet.El
Updatemétodo resuelve los cambios de nuevo en el origen de datos; sin embargo, es posible que otros clientes hayan modificado los datos en el origen de datos desde la última vez que haya rellenado el DataSet. Las nuevas filas se agregan a la tabla y la información actualizada se incorpora a las filas existentes.
Ejemplo
En el ejemplo de código siguiente se muestra cómo actualizar un conjunto de datos con los Fill comandos y Update . Tenga en cuenta que los objetos ETCMLogging y HostFileUtils proporcionan funcionalidad de registro y utilidad, respectivamente.
public void BVTHFDataAdapterInsert(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.BvttestsVals[] Datavals = u.InitBvttestsVals();
try
{
HostFileConnection cn = new HostFileConnection(cnstring);
cn.Open();
String SELECT = u.CreateSQLCommand(host, hostfiletype, cnstring, "SELECT", "BVTTESTS");
HostFileDataAdapter hfda = new HostFileDataAdapter(SELECT, cn);
DataSet ds = new DataSet(); DataSet dsold = new DataSet(); hfda.Fill(ds); hfda.Fill(dsold);
int[] cp = u.CheckColumns(SELECT, cn, logging);
u.ValidateDataSet(ds, logging, Datavals, cp);
object[] newrow = new object[5];
// ('REC129-1','REC129-2',129,1290,'129.645')
newrow[cp[0]] = "REC129-1";
newrow[cp[1]] = "REC129-2";
newrow[cp[2]] = 129;
newrow[cp[3]] = 1290;
newrow[cp[4]] = 129.645M;
ds.Tables[0].Rows.Add(newrow);
int z = hfda.Update(ds);
if (z != 1)
{
logging.LogFail("a unexpected number of updates::"+z.ToString());
}
DataSet ds1 = new DataSet();
hfda.Fill(ds1);
int j = 0;
int i = 0;
foreach (DataRow row in ds1.Tables[0].Rows)
{
string rec = (string)ds1.Tables[0].Rows[j][cp[0]];
if (!rec.Equals("REC129-1"))
{
u.CompareValues((string)ds1.Tables[0].Rows[j][cp[0]], Datavals[i].OUT1_CHAR1, logging);
u.CompareValues((string)ds1.Tables[0].Rows[j][cp[1]], Datavals[i].OUT1_CHAR2, logging);
u.CompareValues((short)ds1.Tables[0].Rows[j][cp[2]], Datavals[i].OUT1_SMALLINT, logging);
u.CompareValues((int)ds1.Tables[0].Rows[j][cp[3]], Datavals[i].OUT1_INTEGER, logging);
u.CompareValues((decimal)ds1.Tables[0].Rows[j][cp[4]], Datavals[i].OUT1_DECIMAL, logging);
j++;
i++;
}
else
{
u.CompareValues((string)ds1.Tables[0].Rows[j][cp[0]], "REC129-1", logging);
u.CompareValues((string)ds1.Tables[0].Rows[j][cp[1]], "REC129-2", logging);
u.CompareValues((short)ds1.Tables[0].Rows[j][cp[2]], 129, logging);
u.CompareValues((int)ds1.Tables[0].Rows[j][cp[3]], 1290, logging);
u.CompareValues((decimal)ds1.Tables[0].Rows[j][cp[4]], 129.645M, logging);
j++;
}
}
if (j == 0)
{
logging.LogFail("No Rows on DataTable!");
}
z = 0;
z = hfda.Update(dsold);
if (z != 1)
{
logging.LogFail("a unexpected number of updates::" + z.ToString());
}
DataSet ds2 = new DataSet();
hfda.Fill(ds2);
u.ValidateDataSet(ds2, logging, Datavals, cp);
cn.Close();
}
catch (Exception e)
{
logging.LogInfo(e.Message);
logging.LogFail(e.StackTrace);
}
}
Véase también
Trabajar con el adaptador de archivos host y el conjunto de datos
Configuración del adaptador de BizTalk para archivos host