Hallo an alle
Ich habe den DatabaseContext so umgebaut, dass bei einem DatabaseContext.Entity.Load(), Anmeldeinformationen aus einem Setting ausgelesen und verwendet werden.
Das funktioniert so weit auch einwandfrei.
Meine Frage ist nun, wie kann ich den Update-Database Aufruf in der Paket-Manager-Konsole so überschreiben oder umbiegen, dass auch dieser Befehl erst die Settings-Datei einliest und die darin enthaltenen Anmeldeinformationen einliest? Denn, wenn ich nach einer Add-Migration Befehl in der Paket-Manager-Konsole den Update-Database nachschiebe, sind die User und Passwortangaben natürlich leer.
Habt mir wer einen nützlichen Link?
if (!optionsBuilder.IsConfigured)
{
optionsBuilder.UseSqlServer($"Server={EntityFrameworkProperties.SqlServerInstanceName};Database={EntityFrameworkProperties.DatabaseName};User ID={user};Password={pw};");
}
Wenn ich noch ein zweites Anliegen einbringen darf:
Wenn mir jemand noch einen nützlichen Link nennen kann, welcher mir das Roll-Out von EF6 Migration auf eine Bestehende Kunden-DB aufzeigt wäre ich ebenfalls äusserst Dankbar...
Mich würde es interessieren, welche Verschlüsselungssoftware Ihre bei euren Projekten nutzt.
Damit meine Ich, ich möchte den Source-Code vor dem Rollout verschlüsseln, damit das auslesen mittels Reflection etwas erschwert wird.
Ja die Applikation ist/wird mit ASP.NET Web-Forms umgesetzt. Und ja ich habe schon seit geraumer Zeit keine Web-Applikationen mehr geschrieben. Wenn man dann schnell was braucht, orientiert man sich dann schnell am alt bekannten.
Dann werde ich mir ein paar Tutorials über Blazor reinziehen...
Ich trete seit geraumer Zeit auf derselben Stelle.
Ich will einen ausgelesenen Wert über eine JavaScript Funktion in eine Session übergeben, um diese dann später auslesen zu können.
Im unten aufgeführten Beispiel, kann ich einen Wert an eine Session übergeben:
<% var text1= "Welcome Mamu";%>
<%Session["status"] =text1;%>
var session_value = '<%=Session["status"]%>';
alert(session_value);
Wenn ich aber einen mit JavaScript ermittelten Wert in die Session überführen möchte, klappt dies leider nicht...
var text1= "Welcome Mamu";
<%Session["status"] = text1;%>
var session_value = '<%=Session["status"]%>';
alert(session_value);
var text1 = "Welcome Mamu";
<%Session["status"] = %> text1.toString() <%;%>;
var session_value = '<%=Session["status"]%>';
alert(session_value);
Kann mir wer einen Hinweis oder einen Link anbieten, mit welchem ich auf eine Lösung kommen kann?
Nachtrag:
Der untenstehende Aufruf liefert mir beim auslesen der Session in der .NET Klasse nur " + text1 +"
var text1 = "Welcome Mamu";
'<%Session["status"] = "' + text1 + '"; %>';
var session_value = '<%=Session["status"]%>';
alert(session_value);
Ich will euch nicht vorenthalten, was der Grund war.
Der Grund war, das mein Projekt korrupt war. Ich bin heute darüber gestolpert, als ich eine setup.exe für diese Applikation erstellen wollte. Da gab es ordentlich viele Fehlermeldungen, das gewisse dll's nicht in das Zielverzeichnis kopiert werden können da nicht vorhanden.
Nun, die dll's waren im Source Verzeichnis alle vorhanden.
Also habe ich pragmatisch ein neues Projekt angelegt und step-by-step alle Komponenten vom alten Projekt in das neue Projekt kopiert.
Anschließend konnte eine setup.exe erzeugt werden, welche beim Kunden auch zum gewünschten Ergebnis geführt hat.
Für eure Unterstützung bedanke ich mich recht herzlich
Leider hat meine Erweiterung zu keinem Ergebnis geführt. Da die Applikation nicht gestartet werden kann, werden auch keine Logdateien erzeugt.
Ebenfalls habe ich dem ganzen Applikationsorder beim Kunden die Rechte für den Benutzer "Jeder" auf Vollzugriff gesetzt.
Könnten die Fehlermeldungen auf fehlende dll's hindeuten?
Folgende Fehlermeldungen werden in das Event-Log geschrieben:
Fehler
Name der fehlerhaften Anwendung: AenderungswesenUserVerwaltung.exe, Version: 1.0.0.0, Zeitstempel: 0x9fc4e8b6
Name des fehlerhaften Moduls: KERNELBASE.dll, Version: 10.0.19041.572, Zeitstempel: 0x979ddb1d
Ausnahmecode: 0xe0434352
Fehleroffset: 0x00129ab2
ID des fehlerhaften Prozesses: 0x2558
Startzeit der fehlerhaften Anwendung: 0x01d6c3e3fb0f042a
Pfad der fehlerhaften Anwendung: C:\AenderungswesenUserVerwaltung.exe
Pfad des fehlerhaften Moduls: C:\Windows\System32\KERNELBASE.dll
Berichtskennung: 3d1ba573-d2bb-4f2c-9876-db0ec01bc472
Vollständiger Name des fehlerhaften Pakets:
Anwendungs-ID, die relativ zum fehlerhaften Paket ist:
Fehler
Anwendung: AenderungswesenUserVerwaltung.exe
Frameworkversion: v4.0.30319
Beschreibung: Der Prozess wurde aufgrund einer unbehandelten Ausnahme beendet.
Ausnahmeinformationen: System.Data.SqlClient.SqlException
bei System.Data.SqlClient.SqlConnection.OnError(System.Data.SqlClient.SqlException, Boolean, System.Action`1<System.Action>)
bei System.Data.SqlClient.SqlInternalConnection.OnError(System.Data.SqlClient.SqlException, Boolean, System.Action`1<System.Action>)
bei System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(System.Data.SqlClient.TdsParserStateObject, Boolean, Boolean)
bei System.Data.SqlClient.TdsParser.TryRun(System.Data.SqlClient.RunBehavior, System.Data.SqlClient.SqlCommand, System.Data.SqlClient.SqlDataReader, System.Data.SqlClient.BulkCopySimpleResultSet, System.Data.SqlClient.TdsParserStateObject, Boolean ByRef)
bei System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
bei System.Data.SqlClient.SqlDataReader.get_MetaData()
bei System.Data.SqlClient.SqlCommand.FinishExecuteReader(System.Data.SqlClient.SqlDataReader, System.Data.SqlClient.RunBehavior, System.String, Boolean, Boolean, Boolean)
bei System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(System.Data.CommandBehavior, System.Data.SqlClient.RunBehavior, Boolean, Boolean, Int32, System.Threading.Tasks.Task ByRef, Boolean, Boolean, System.Data.SqlClient.SqlDataReader, Boolean)
bei System.Data.SqlClient.SqlCommand.RunExecuteReader(System.Data.CommandBehavior, System.Data.SqlClient.RunBehavior, Boolean, System.String, System.Threading.Tasks.TaskCompletionSource`1<System.Object>, Int32, System.Threading.Tasks.Task ByRef, Boolean ByRef, Boolean, Boolean)
bei System.Data.SqlClient.SqlCommand.RunExecuteReader(System.Data.CommandBehavior, System.Data.SqlClient.RunBehavior, Boolean, System.String)
bei System.Data.SqlClient.SqlCommand.ExecuteReader(System.Data.CommandBehavior, System.String)
bei System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(System.Data.CommandBehavior)
bei System.Data.Common.DbCommand.ExecuteReader(System.Data.CommandBehavior)
bei System.Data.Entity.Infrastructure.Interception.DbCommandDispatcher+<>c.<Reader>b__6_0(System.Data.Common.DbCommand, System.Data.Entity.Infrastructure.Interception.DbCommandInterceptionContext`1<System.Data.Common.DbDataReader>)
bei System.Data.Entity.Infrastructure.Interception.InternalDispatcher`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].Dispatch[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]](System.__Canon, System.Func`3<System.__Canon,System.__Canon,System.__Canon>, System.__Canon, System.Action`3<System.__Canon,System.__Canon,System.__Canon>, System.Action`3<System.__Canon,System.__Canon,System.__Canon>)
bei System.Data.Entity.Infrastructure.Interception.DbCommandDispatcher.Reader(System.Data.Common.DbCommand, System.Data.Entity.Infrastructure.Interception.DbCommandInterceptionContext)
bei System.Data.Entity.Internal.InterceptableDbCommand.ExecuteDbDataReader(System.Data.CommandBehavior)
bei System.Data.Common.DbCommand.ExecuteReader(System.Data.CommandBehavior)
bei System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition.ExecuteStoreCommands(System.Data.Entity.Core.EntityClient.EntityCommand, System.Data.CommandBehavior)
Ausnahmeinformationen: System.Data.Entity.Core.EntityCommandExecutionException
bei System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition.ExecuteStoreCommands(System.Data.Entity.Core.EntityClient.EntityCommand, System.Data.CommandBehavior)
bei System.Data.Entity.Core.Objects.Internal.ObjectQueryExecutionPlan.Execute[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]](System.Data.Entity.Core.Objects.ObjectContext, System.Data.Entity.Core.Objects.ObjectParameterCollection)
bei System.Data.Entity.Core.Objects.ObjectQuery`1+<>c__DisplayClass41_0[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].<GetResults>b__1()
bei System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]](System.Func`1<System.__Canon>, System.Data.Entity.Infrastructure.IDbExecutionStrategy, Boolean, Boolean)
bei System.Data.Entity.Core.Objects.ObjectQuery`1+<>c__DisplayClass41_0[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].<GetResults>b__0()
bei System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]](System.Func`1<System.__Canon>)
bei System.Data.Entity.Core.Objects.ObjectQuery`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].GetResults(System.Nullable`1<System.Data.Entity.Core.Objects.MergeOption>)
bei System.Data.Entity.Core.Objects.ObjectQuery`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].<System.Collections.Generic.IEnumerable<T>.GetEnumerator>b__31_0()
bei System.Data.Entity.Internal.LazyEnumerator`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].MoveNext()
bei System.Linq.Enumerable+WhereSelectEnumerableIterator`2[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].MoveNext()
bei System.Linq.Enumerable.Count[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]](System.Collections.Generic.IEnumerable`1<System.__Canon>)
bei AenderungswesenUserVerwaltung.UserAdministration..ctor()
bei AenderungswesenUserVerwaltung.Program.Main()
Ich erweitere meine Applikation um die erweiterte Logger Funktion. Dann werde ich morgen sehen, ob beim Kunden weitere wertvolle Informationen geloggt werden.
Es ist immer Käse, wenn Applikationen beim Entwickler laufen, aber beim Kunden nicht starten wollen...
Ich habe meine erste Applikation mit EF6 von Grund auf selbst entworfen implementiert und versuche diese nun beim Kunden zum Laufen zu bringen.
Leider bricht die Applikation beim Starten mit einer SQL Exception ab.
Die Anwendung wurde mit dem Ziel Framework 4.5.2 implementiert
Der Rechner hat Windows 10 installiert und die Applikation versucht eine Verbindung zum SQL Server (2008 Version) aufzubauen. Ist evtl. der SQL Server zu alt?
Alle Angaben in der Connection sind richtig, und auch die Datenbank ist inkl. der __MigrationHistory genau gleich wie auf meiner Entwicklungsumgebung.
Muss trotzdem im OS enthaltenen .Net Framework, die "Entity Framework Runtime" & ggf. die "Entiity Framework Tools" auf jedem Rechner nachinstalliert werden?
Fehler
Anwendung: xy.exe
Frameworkversion: v4.0.30319
Beschreibung: Der Prozess wurde aufgrund einer unbehandelten Ausnahme beendet.
Ausnahmeinformationen: System.Data.SqlClient.SqlException
bei System.Data.SqlClient.SqlConnection.OnError(System.Data.SqlClient.SqlException, Boolean, System.Action`1<System.Action>)
bei System.Data.SqlClient.SqlInternalConnection.OnError(System.Data.SqlClient.SqlException, Boolean, System.Action`1<System.Action>)
bei System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(System.Data.SqlClient.TdsParserStateObject, Boolean, Boolean)
bei System.Data.SqlClient.TdsParser.TryRun(System.Data.SqlClient.RunBehavior, System.Data.SqlClient.SqlCommand, System.Data.SqlClient.SqlDataReader, System.Data.SqlClient.BulkCopySimpleResultSet, System.Data.SqlClient.TdsParserStateObject, Boolean ByRef)
bei System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
bei System.Data.SqlClient.SqlDataReader.get_MetaData()
bei System.Data.SqlClient.SqlCommand.FinishExecuteReader(System.Data.SqlClient.SqlDataReader, System.Data.SqlClient.RunBehavior, System.String, Boolean, Boolean, Boolean)
bei System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(System.Data.CommandBehavior, System.Data.SqlClient.RunBehavior, Boolean, Boolean, Int32, System.Threading.Tasks.Task ByRef, Boolean, Boolean, System.Data.SqlClient.SqlDataReader, Boolean)
bei System.Data.SqlClient.SqlCommand.RunExecuteReader(System.Data.CommandBehavior, System.Data.SqlClient.RunBehavior, Boolean, System.String, System.Threading.Tasks.TaskCompletionSource`1<System.Object>, Int32, System.Threading.Tasks.Task ByRef, Boolean ByRef, Boolean, Boolean)
bei System.Data.SqlClient.SqlCommand.RunExecuteReader(System.Data.CommandBehavior, System.Data.SqlClient.RunBehavior, Boolean, System.String)
bei System.Data.SqlClient.SqlCommand.ExecuteReader(System.Data.CommandBehavior, System.String)
bei System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(System.Data.CommandBehavior)
bei System.Data.Common.DbCommand.ExecuteReader(System.Data.CommandBehavior)
bei System.Data.Entity.Infrastructure.Interception.DbCommandDispatcher+<>c.<Reader>b__6_0(System.Data.Common.DbCommand, System.Data.Entity.Infrastructure.Interception.DbCommandInterceptionContext`1<System.Data.Common.DbDataReader>)
bei System.Data.Entity.Infrastructure.Interception.InternalDispatcher`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].Dispatch[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]](System.__Canon, System.Func`3<System.__Canon,System.__Canon,System.__Canon>, System.__Canon, System.Action`3<System.__Canon,System.__Canon,System.__Canon>, System.Action`3<System.__Canon,System.__Canon,System.__Canon>)
bei System.Data.Entity.Infrastructure.Interception.DbCommandDispatcher.Reader(System.Data.Common.DbCommand, System.Data.Entity.Infrastructure.Interception.DbCommandInterceptionContext)
bei System.Data.Entity.Internal.InterceptableDbCommand.ExecuteDbDataReader(System.Data.CommandBehavior)
bei System.Data.Common.DbCommand.ExecuteReader(System.Data.CommandBehavior)
bei System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition.ExecuteStoreCommands(System.Data.Entity.Core.EntityClient.EntityCommand, System.Data.CommandBehavior)
Ausnahmeinformationen: System.Data.Entity.Core.EntityCommandExecutionException
bei System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition.ExecuteStoreCommands(System.Data.Entity.Core.EntityClient.EntityCommand, System.Data.CommandBehavior)
bei System.Data.Entity.Core.Objects.Internal.ObjectQueryExecutionPlan.Execute[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]](System.Data.Entity.Core.Objects.ObjectContext, System.Data.Entity.Core.Objects.ObjectParameterCollection)
bei System.Data.Entity.Core.Objects.ObjectQuery`1+<>c__DisplayClass41_0[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].<GetResults>b__1()
bei System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]](System.Func`1<System.__Canon>, System.Data.Entity.Infrastructure.IDbExecutionStrategy, Boolean, Boolean)
bei System.Data.Entity.Core.Objects.ObjectQuery`1+<>c__DisplayClass41_0[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].<GetResults>b__0()
bei System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]](System.Func`1<System.__Canon>)
bei System.Data.Entity.Core.Objects.ObjectQuery`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].GetResults(System.Nullable`1<System.Data.Entity.Core.Objects.MergeOption>)
bei System.Data.Entity.Core.Objects.ObjectQuery`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].<System.Collections.Generic.IEnumerable<T>.GetEnumerator>b__31_0()
bei System.Data.Entity.Internal.LazyEnumerator`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].MoveNext()
bei System.Linq.Enumerable+WhereSelectEnumerableIterator`2[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].MoveNext()
bei System.Linq.Enumerable.Count[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]](System.Collections.Generic.IEnumerable`1<System.__Canon>)
bei AenderungswesenUserVerwaltung.UserAdministration..ctor()
bei AenderungswesenUserVerwaltung.Program.Main()
Ich habe in einer Datenbank, welche mittels CodeFirst erstellt wurde, eine neue View angelegt.
Ich will nun diese View als Objekt dem DatabaseContext zuführen, ohne das eine neue Add-Migration fällig wird.
Ich habe bereits eine POCO Klasse erstellt, welche ich in der Methode "OnModelCreating" über modelBuilder.Ignore<ViewContextName>() ausgeschlossen habe um diese später befüllen zu können.
Anschliessend habe ich die POCO Klasse erstellt und in der DatabaseContext Klassen Methode "OnModelCreating" über modelBuilder.Ignore<ViewContextName>(); aus dem Migrationsprozess ausgeschlossen, da diese bereits in der Datenbank existiert.
Hat jemand eine Ahnung, wie ich eine Entity zur Laufzeit dem DB-Context zufügen kann?
Ich nutze zur Evaluierung von Active Directory Pfaden das Sysinternaltool um das lokale Active Directory auzulesen. Leider sehe ich mit diesem Tool mehr CN Users in einer bestimmten OU als mit dem Active Directory bei welchem ich den identischen Pfad nutze.
Wenn ich nun den untenstehende AD Pfad nutze, erhalte ich eine Menge Users mit welchen ich arbeiten kann, jedoch fehlen mir einige Users in diesem Suchergebnis.
Ich möchte gerne mehrere DataTable mittels DataRelation miteinander verknüpfen.
Dies funktioniert auch einwandfrei.
Nun habe ich die Konstellation, dass zwei Tabellen mittels zwei Spalten als eindeutiger Schlüssel verknüpft werden müssen.
Kann mir hier wer von euch weiter helfen wie ich das bewerkstelligen kann? Ich kriegs einfach nicht auf die Reihe.
DataSet ds = new DataSet();
DataTable dt1 = new DataTable();
DataTable dt2 = new DataTable();
DataTable dt3 = new DataTable();
// Stellt die Verbindung zwischen den Tabellen dt1 und dt2 über die ID her
DataRelation objRelation1 = new DataRelation("Relation1", ds.Tables["dt1"].Columns["id_PK"], ds.Tables["dt2"].Columns["id_FK"]);
ds.Relations.Add(objRelation1);
// Stellt die Verbindung zwischen den Tabellen dt2 und dt3 über die ID und Artikelnummer her
DataRelation objRelation2 = new DataRelation("Relation2", ds.Tables["dt2"].Columns["id_PK"], ds.Tables["dt3"].Columns["id_FK"]); // Wie wird hier die zweite Verknüpfung angegeben ???
ds.Relations.Add(objRelation2);
Beispiel in SQL
Select * from Table2
inner join Table3
on Table2.Id_PK = Table3.Id_PK_PK and Table2.Artikelnummer = Table3.Artikelnummer
Ich habe in einer Page ein LinkButton welcher die PostBackUrl="javascript:history.back()" beim clicken aufruft.
Soweit so gut.
Nun wurde die Page um einen Update Button erweitert und sollte nun nach dem Update auf die letzte Seite zurückspringen.
Dies wollte ich nun mit dem programmatischen anstossen des click Events des LinkButton im CodeBehinde bewerkstelligen.
Ich habe eine SqlDataSource in einer ASP.NET Seite, welche ich in eine DataTable transferierte habe um diese zu modifizieren. Nun möchte ich diese gerne wieder in die SqlDataSource zurückschreiben. Jedoch habe ich bis anhin noch keine brauchbaren Lösungsansätze gefunden oder geht das nur mit ObjectDataSource?
Bei mir tritt ein Effekt auf, welchen ich mir nicht mehr erklären kann.
Wir haben eine Web Applikation in ASPX gebaut, welche Werte aus einer DB-Tabelle ausliest und schreibt.
Seit dem Serverwechsel von einem Windows Server 2008 R2 auf den neuen Windows Server 2012 tritt der Effekt auf, dass alle Dezimal Werte nicht mehr mit einem Punkt sondern mit einem Komma getrennt werden.
Wie bereits erwähnt läuft die Anwendung auf dem älteren Server fehlerfrei.
Einstellungen:
In den Sprachen und Regionen ist der Punkt gesetzt.
Der DB - Benutzer hat "German" als Default Language (German) gesetzt.
In der Datenbank sind die Dezimal Werte mit einem Punkt gespeichert und werden mit einem DB Select im MSSQL Management Studio auch mit einem Punkt ausgegeben.
Ich habe bereits versucht die CulturInfo pro Page zu übersteuern jedoch ohne Erfolg…
using System.Threading;
using System.Globalization;
//……………………
Thread.CurrentThread.CurrentCulture = new CultureInfo("de-CH");
Thread.CurrentThread.CurrentUICulture = new CultureInfo("de-CH");
Technisches:
Windows Server 2012
• Sprache Region => Deutsch(Schweiz)
MSSQL Server 2012
• Default Language => German
Browser:
• Internet Explorer
• Google Chrome
• Firefox
• Safari
Hat jemand on euch noch eine Idee was hier den Side Effekt generieren könnte?
Ich bin auf der Suche nach einem Zahlen Feld (Nummer Block) welcher ich gerne auf in einem UserControl einblenden kann.
Bei dem Virtuellen Keyboard ist ein solches Zahlen Feld vorhanden. Jedoch benötige ich nur den Nummer Block.
Auch ist mir bekannt, dass ich diesen selbst ohne weiteres schreiben kann. Nur wollte ich mich bei euch erkundigen, ohne das Rad neu erfinden zu müssen, ob und wie es möglich ist einen Nummern Block und nur den Nummern Block permanent auf einem UserControl anzuzeigen.
Hat jemand von euch Erfahrung damit oder eine Idee?
Meine Frage ist ziemlich banal, konnte sie bis anhin leider noch nicht lösen.
Ich habe eine WînForm mit einem GridControl inkl. GridView gebaut.
Zur Laufzeit wird die Form mit dem GridView korrekt geladen und mit Daten befüllt.
Nun zu meiner Frage:
Ich muss für den Kunden eine Spalte definieren, in welcher er die bereits eingetragenen Werte überschreiben kann.
Leider kann ich die Werte in dieser Spalte nur markieren aber nicht überschreiben.
Hat jemand eine Idee an was das Liegen oder was ich vergessen / nicht beachtet haben könnte?
AllowEdit ist gesetzt und auch das ReadOnly ist nicht aktiv.
Ich nutze zur Zeit die SQL Data Source Komponente von "DX. 14.2: Data & Analystics"
Habe die Collection erneut gestoppt, getrennt und gesichert. Anschliessend gesichert und auf den FTP Server kopiert. ich vermute, das beim ersten mal das Backup irgendwie beschädigt wurde....
Habe nun einen TFS 2010 auf ein win 8.1 installiert darauf die Trial Version des TFS 2012. Auch hier erhalte ich das selbe verhalten wenn ich eine bestehende Collection hinzufügen will. Die Basis Collection welche der 2010 anlegt, wird in der Liste der Collections angezeig, die zu importierende TFS Collection hingegen nicht.
Ich wollte heute eine TFS Team Project Collection von einem TFS 2010 auf einen TFS 2013 (Update 4) migrieren.
Leider krieg ich die 2010 Collection nicht in den 2013.
Durfte jemand diesbezüglich bereits Erfahrungen sammeln? Ich übe jetzt bereits den ganzen Tag, leider ohne Erfolg. Ich kann die 2010 Collection nicht in die 2013 Team Projects laden...
Wie in meiner Anfrage kurz beschrieben, hatte ich die Aufgabe, Mails mit Bildern zu versenden, welche anschliessend in Outlook mit samt den Bildern dargestellt werden musste.
Ausgangslage in meiner Aufgabenstellung war, das ich einen Report mit DevExpress generiert habe, welcher anschliessend als Offerte, Rechnung etc. an Kunden versendet werden sollte, welche wiederum die Mail Mit Outlook empfangen und öffnen wollen.
Ich habe dies wie folgt mit C# realisiert:
/// <summary>
/// Send report as email
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void barButtonItem1_ItemClick(object sender, ItemClickEventArgs e)
{
// SendMail based on XtraReport from DevExpress
var xtraReport1 = new XtraReport1();
xtraReport1.CreateDocument();
// Memory Stream instanzieren
using (var ms = new MemoryStream())
{
xtraReport1.SaveLayout(ms, true);
var opts = new HtmlExportOptions();
opts.EmbedImagesInHTML = false;
opts.ExportMode = HtmlExportMode.SingleFile;
opts.TableLayout = true;
opts.Title = "Ticket # 2 MyTitle ";
xtraReport1.ExportToHtml(ms, opts);
xtraReport1.ExportToHtml(@"C:\tmp\Reports\TestReport_2.html", opts);
}
this.Cursor = Cursors.Default;
// Erlaubte Dateiendungen definieren
var extensions = new HashSet<string>(StringComparer.OrdinalIgnoreCase)
{
".gif",
".jpg",
".png",
};
/****************************************************************
* Durch das exportieren des XtraReports in ein HTML,
* wurden alle Image files in einen speziellen Ordner kopiert
* welches nun als basis Verzeichnis für das auslesen der Bild
* Dateien für das Email verwendet werden kann.
* Wäre kein solches Verzeichnis vorhanden, so müssten alle
* Bilddateien aus einem bestehenden HTML extrahiert werden.
* Mögliche Option HtmlAgilityPack dll
****************************************************************/
// Verzeichnis der Bilddateien
var baseDir = @"C:\tmp\Reports\TestReport_2_files";
// Anzahl der Bilddateien ermitteln
var count = Directory.EnumerateFiles(baseDir).Count(filename =>filename != null && extensions.Contains(Path.GetExtension(filename)));
var fileNames = new string[count];
var fileNameCounter = 0;
foreach (var ext in extensions)
{
foreach (string s in Directory.GetFiles(baseDir, '*' + ext).Select(Path.GetFileName))
{
fileNames[fileNameCounter] = s;
fileNameCounter++;
}
}
string mySource = System.IO.File.ReadAllText(@"C:\tmp\Reports\TestReport_2.html");
string[] source = mySource.Split(new char[] {'<'}, StringSplitOptions.RemoveEmptyEntries);
foreach (var fileName in fileNames)
{
// Replace Image information
mySource = (from s in source.Where(s => s.Contains("img"))
where s.Contains(fileName)
select s.Substring(s.IndexOf("src"), (s.IndexOf(" style") - 11))).Aggregate(mySource,(current, stringToReplace) =>current.Replace(stringToReplace, "src=\"cid:" + fileName.Substring(0, fileName.IndexOf('.')) + "\""));
}
// Foreach Schleife als Linq
//mySource = fileNames.Aggregate(mySource, (current1, fileName) => (from s in source.Where(s => s.Contains("img")) where s.Contains(fileName) select s.Substring(s.IndexOf("src"), (s.IndexOf(" style") - 11))).Aggregate(current1, (current, stringToReplace) => current.Replace(stringToReplace, "src=\"cid:" + fileName.Substring(0, fileName.IndexOf('.')) + "\"")));
System.IO.File.WriteAllText(@"C:\tmp\Reports\TestReport_2_new.html", mySource.ToString());
var avHtmlNew = AlternateView.CreateAlternateViewFromString(System.IO.File.ReadAllText(@"C:\tmp\Reports\TestReport_2_new.html"), null,System.Net.Mime.MediaTypeNames.Text.Html);
foreach (var fileName in fileNames)
{
// Replace Image information
var inline = new LinkedResource(@"C:\tmp\Reports\TestReport_2_files\" + fileName,MediaTypeNames.Image.Jpeg);
inline.ContentId = fileName.Substring(0, fileName.IndexOf('.'));
avHtmlNew.LinkedResources.Add(inline);
}
// Email propeties befüllen
var mail = new MailMessage("peter.baumann@phibus.ch", "atenahusky@gmail.com");
mail.IsBodyHtml = true;
mail.Subject = "this is a test email.";
mail.AlternateViews.Add(avHtmlNew);
mail.Body = System.IO.File.ReadAllText(@"C:\tmp\Reports\TestReport_2_new.html");
mail.IsBodyHtml = true;
var client = new SmtpClient();
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.UseDefaultCredentials = false;
try
{
//Anmeldedaten für den SMTP Server
client.Credentials = new System.Net.NetworkCredential(ConfigurationManager.AppSettings["SMTPUser"],ConfigurationManager.AppSettings["SMTPPassword"]);
client.Host = ConfigurationManager.AppSettings["SMTPHost"];
client.Port = 25;
client.EnableSsl = Convert.ToBoolean(ConfigurationManager.AppSettings["SMTPSSL"]);
client.Send(mail);
MessageBox.Show("Email has send!!!");
}
catch (Exception ex)
{
MessageBox.Show("Can't sending email:\n" + ex.Message, "Error by sending mail", MessageBoxButtons.OK,MessageBoxIcon.Error);
}
}