Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
HostFileDataAdapter.Update wird aufgerufen, um Änderungen von einem DataSet Objekt zurück zur Datenquelle aufzulösen. Die Update Methode nimmt, wie die Fill Methode, eine Instanz eines DataSet als Argument entgegen.
So aktualisieren Sie das Hostdateisystem mit dem Datenadapter
Erstellen Sie ein
DataSetObjekt, das die Zu aktualisierenden Informationen enthält.Alternativ können Sie die Daten eines vorhandenen
DataSetObjekts mit einem AufrufDataSet.AcceptChangesüberschreiben.Beachten Sie, dass das Aufrufen von
AcceptChangesbeimDataSet,DataTableoderDataRow-Objekt alle Originalwerte für einDataRow-Objekt mit den Aktuellen Werten für dasDataRowüberschreibt. Wenn die Feldwerte, die die Zeile als eindeutig kennzeichnen, geändert wurden, dann stimmen nach dem Aufruf vonAcceptChangesdie Originalwerte nicht mehr mit den Werten in der Datenquelle überein.Darüber hinaus können Sie Parameter verwenden
HostFileCommand, um Eingabe- und Ausgabewerte für eine SQL-Anweisung für jede geänderte Zeile in einemDataSetObjekt anzugeben.Rufen Sie
HostFileDataAdapter.Updatedas DataSet-Objekt auf, das Sie aktualisieren möchten.Wenn Sie die
UpdateMethode aufrufen, analysiertHostFileDataAdapterdie vorgenommenen Änderungen und führt den passenden Befehl aus. WennUpdateaufgerufen wird und der entsprechende Befehl für ein bestimmtes Update nicht vorhanden ist (wenn z. B.DeleteCommandfür gelöschte Zeilen fehlt), wird eine Ausnahme ausgelöst.Wenn Sie Ihr Dataset mit Daten aktualisieren möchten, rufen Sie das
DataSetObjekt mitHostFileDataAdapter.Fillauf.Die
UpdateMethode löst Ihre Änderungen wieder in der Datenquelle auf. Andere Clients haben jedoch möglicherweise Daten an der Datenquelle seit dem letzten Ausfüllen des DataSets geändert. Neue Zeilen werden der Tabelle hinzugefügt, und aktualisierte Informationen werden in vorhandene Zeilen integriert.
Beispiel
Im folgenden Codebeispiel wird veranschaulicht, wie ein Dataset mit den Fill Und-Befehlen Update aktualisiert wird. Beachten Sie, dass die ETCMLogging- und HostFileUtils-Objekte Protokollierungs- bzw. Hilfsfunktionen bereitstellen.
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);
}
}
Siehe auch
Arbeiten mit dem Hostdateiadapter und -Dataset
BizTalk-Adapter für die Konfiguration von Hostdateien