Ich arbeite seit Wochen an dieser Verwaltungsanwendung und es ist fast fertig. Was passiert, wenn ein Benutzer auf die Schaltfläche zum Speichern klickt, wird eine VerifyFields() -Methode aufgerufen. Danach sollte der Benutzer gefragt werden, ob er eine E-Mail speichern und senden möchte. Sobald der Benutzer auf Ja klickt, soll er eine E-Mail an die E-Mail-Adressen in einer XML-Datei senden. Ich erhalte die Fehlermeldung "Die Datei: DREmailAddresses.xml wurde nicht gefunden unter: \ fs01 \ Applications \ EMS-Manager." Die Datei ist jedoch vorhanden und zugänglich. Ich habe den untenstehenden Code sowie eine image of the error. kopiert.Zugriff auf XML-Datei über Netzwerk
// Begin Email Section
public bool VerifyFields()
{
var status = false;
switch (tbxDynPartNumber.Text)
{
case "":
MessageBox.Show(@"Enter Dynalab Part#", @"Input Needed", MessageBoxButtons.OK, MessageBoxIcon.Error);
status = true;
break;
}
switch (tbxSupplier.Text)
{
case "":
MessageBox.Show(@"Enter Supplier Name", @"Input Needed", MessageBoxButtons.OK, MessageBoxIcon.Error);
status = true;
break;
}
switch (tbxInitiatedBy.Text)
{
case "":
MessageBox.Show(@"Enter Initiator Name", @"Input Needed", MessageBoxButtons.OK, MessageBoxIcon.Error);
status = true;
break;
}
switch (orderQty.Text)
{
case "0":
MessageBox.Show(@"Order Quantity Must Be Greater Than 0!", @"Input Needed", MessageBoxButtons.OK, MessageBoxIcon.Error);
status = true;
break;
}
switch (dtpDate.Text)
{
case "":
MessageBox.Show(@"Enter A Valid Date.", @"Input Needed", MessageBoxButtons.OK, MessageBoxIcon.Error);
status = true;
break;
}
switch (tbxDescription.Text)
{
case "":
MessageBox.Show(@"Enter Description", @"Input Needed", MessageBoxButtons.OK, MessageBoxIcon.Error);
status = true;
break;
}
switch (tbxLocation.Text)
{
case "":
MessageBox.Show(@"Enter Location", @"Input Needed", MessageBoxButtons.OK, MessageBoxIcon.Error);
status = true;
break;
}
switch (tbxDiscrepancyDescription.Text)
{
case "":
MessageBox.Show(@"Enter Discrepancy Description", @"Input Needed", MessageBoxButtons.OK, MessageBoxIcon.Error);
status = true;
break;
}
return status;
}
public void PrepareEmail(string subject, string message)
{
if (MessageBox.Show(@"Are you sure you want to save and send Discrepancy Report: " +tbxDRNumber.Text + @"?\n Click YES to save\n Click NO to cancel" , @"Confirm", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
SendEmail(subject,message);
}
}
public Array AddEmail()
{
string[] dRemail = { "", "", "" };
if (File.Exists(@"\\fs01\Applications\EMS-Manager\DREmailAddresses.xml"))
{
XmlReader emailDocument = new XmlTextReader(@"\\fs01\Applications\EMS-Manager\DREmailAddresses.xml");
while (emailDocument.Read())
{
var type = emailDocument.NodeType;
switch (type)
{
case XmlNodeType.Element:
if (emailDocument.Name == "DRCreatedAddEmail")
{
dRemail[0] = emailDocument.ReadInnerXml();
}
if (emailDocument.Name == "DRActionNeededAddEmail")
{
dRemail[1] = emailDocument.ReadInnerXml();
}
if (emailDocument.Name == "DRPendingAddEmail")
{
dRemail[2] = emailDocument.ReadInnerXml();
}
else
{
MessageBox.Show(
@"The file: 'DREmailAddresses.xml' was not found at: \\fs01\Applications\EMS-Manager");
}
break;
}
}
}
return dRemail;
}
keine Antwort sein sollte, aber die [docs für XmlTextReader sagen] (https://msdn.microsoft.com/en-us/library/1af7xa52 (v = vs.110) .aspx) say _ "Wir empfehlen, mit dem .NET Framework 2.0 XmlReader-Instanzen zu erstellen, indem Sie die XmlReader.Create-Methode verwenden, um die neuen Funktionen zu nutzen." _ – stuartd
Mit Blick auf den Code, den Sie nicht verwenden t scheinen Switch-Statements zu verstehen. All dies hätte mit einfachen if-Anweisungen erledigt werden können. – LeonG
Sie haben Recht, wenn Aussagen. Es kann nützlich sein, den Code für die Verwendung von if-Anweisungen anstelle der switch-Anweisungen zu ändern. Ich bin auch sehr neu im Programmieren und lerne immer noch. Ich habe mir alles selbst beigebracht und mache Fehler, das gehört zum Lernen. Allerdings gehen wir nächste Woche in der Klasse über Switch-Anweisungen. Danke für deinen Beitrag. – TAdams79