Laden...
T
Thomas.A myCSharp.de - Member
Kommunikationstechniker Leipzig Dabei seit 11.05.2006 19 Beiträge
Benutzerbeschreibung

Forenbeiträge von Thomas.A Ingesamt 19 Beiträge

25.11.2013 - 19:09 Uhr

Hallo zusammen,
bin kurz vorm Verzweifeln, und das obwohl mein Thema absolut kein neues ist.
Ich verwende Visual Studio 2013 Express und den SQL Server Express 2012.
Das Tool soll den Inhalt einer SQL Datenbank bzw. Tabelle in einem Windows.Forms.DataGridView darstellen. Auf meinem Entwicklungsrechner (WIN8.1) funktioniert alles einwandfrei, bzw. tritt der Fehler hier nicht auf oder ist nicht zu bemerken. Ich habe die Anwendung + die Datenbankdatei (.mdf) auf einen anderen PC (WIN7) kopiert. Hier läuft ein SQL Express 2008. Genau hier fängt mein Problem an. Wenn ich die Anwendung auf diesem PC das erste Mal starte, erhalte ich sehr oft, leider nicht immer folgende Fehlermeldung:

Fehlermeldung:
System.Data.SqlClient.SqlException (0x80131904): Timeout abgelaufen. Das Zeitlimit wurde vor dem Beenden des Vorgangs überschritten oder der Server reagiert nicht.
bei System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
bei System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
bei System.Data.SqlClient.TdsParserStateObject.ReadSniError(TdsParserStateObject stateObj, UInt32 error)
bei System.Data.SqlClient.TdsParserStateObject.ReadSni(DbAsyncResult asyncResult, TdsParserStateObject stateObj)
bei System.Data.SqlClient.TdsParserStateObject.ReadNetworkPacket()
bei System.Data.SqlClient.TdsParserStateObject.ReadBuffer()
bei System.Data.SqlClient.TdsParserStateObject.ReadByte()
bei System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
bei System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK)
bei System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, SqlConnection owningObject)
bei System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, TimeoutTimer timeout)
bei System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, TimeoutTimer timeout, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance)
bei System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance)
bei System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection)
bei System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options)
bei System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject)
bei System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject)
bei System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)
bei System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
bei System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
bei System.Data.SqlClient.SqlConnection.Open()
bei System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
bei System.Data.Common.DbDataAdapter.Fill(DataTable[] dataTables, Int32 startRecord, Int32 maxRecords, IDbCommand command, CommandBehavior behavior)
bei System.Data.Common.DbDataAdapter.Fill(DataTable dataTable)
bei WinSqlTestDataManager.WinKfzDataSetTableAdapters.Table_1TableAdapter.Fill(Table_1DataTable dataTable)
bei WinSqlTestDataManager.Form1.btn_Read_Click(Object sender, EventArgs e)
bei System.Windows.Forms.Control.OnClick(EventArgs e)
bei System.Windows.Forms.Button.OnClick(EventArgs e)
bei System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
bei System.Windows.Forms.Control.WndProc(Message& m)
bei System.Windows.Forms.ButtonBase.WndProc(Message& m)
bei System.Windows.Forms.Button.WndProc(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Ab dem zweiten Start funktioniert alles einwandfrei, bis irgendwann wieder der Zustand da ist, dass die Fehlermeldung erneut angezeigt wird. Umfangreiches googeln hat mir leider keine Lösung gebracht. Auch aus den LOG-Dateien des SQL-Server werde ich nicht schlau, bzw. kann keine Rückschlüsse ziehen. Der Einsatz auf einem XP-PC mit SQL Express 2008 zeigt das gleiche Verhalten.

Hier noch mein Connection-String:
connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\WinKfz.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"

Wer hat dazu eine Idee, wer kann mir weiterhelfen oder noch eine Tipp geben?
Wenn weitere Informationen gebraucht werden, so ist das kein Problem, bitte einfach Bescheid sagen.
Vielen Dank ...

10.08.2012 - 10:11 Uhr

Hallo nochmal,

habe nun zum Schluß eine etwas andere Lösung gefunden.
Ich benutze zum Eingeben der Befehle eine Textbox. Die Befehle werden über den Serialport an das externe System geschickt und parallel dazu in eine Listbox geschrieben.
Sollte ein Befehl erneut gebraucht werden, so kann er durch Doppelklick aus der Listbox ausgewählt werden.
Damit können wir leben.
Danke für alle Hinweise...

07.08.2012 - 13:57 Uhr

An Herbivore:
Mein Problem ist, dass ich schon geraume Zeit an diesem Problem sitze ohne wirklich vorwärts zu kommen. Ich kenne Software wo es so funktioniert, also kann es ja nicht unmöglich sein. Ich beginne wie gesagt noch einmal von vorn.
Danke erst mal.

An Rabban:
Das ist ein interssanter Vorschlag, damit werde ich es versuchen. Mit einer Textbox bin ich wie gesagt gescheitert.
Auch Dir danke für die Antwort.

06.08.2012 - 15:09 Uhr

MrSparkle,
alles klar, aber so einfach ist das nicht.
Es gibt ca. 200 Befehle und bei 90% schließen sich noch eine Vielzahl von Parametern an. Deshalb ist die Befehlewiederholung ein so wichtiges Kriterium.
Diese Befehle einschließlich der möglichen Parameter in andere Steuerelemente zu schreiben, wie eine ListBox oder eine ComboBox ist daher nicht möglich.
Ich werde noch einmal ganz von vorn beginnen.
Eine ähnliche Funktionalität ist ja bei bestimmten Modem/Terminalprogrammen gegeben. Ich weiß nur nicht wie!
Thomas

06.08.2012 - 14:46 Uhr

Hallo MrSparkle,
noch einmal zur Erklärung. Die Befehle werden werden über einen SerialPort an ein externes System geschickt. Wenn nun ein Befehl mehrmals gebraucht wird, soll er mittels dieser Wiederholung benutzt werden, anstatt ihn neu zu schreiben.
Ich hatte mir weiterhin vorgestellt, dass so ein "Wiederholter Befehl" z.B. aus der Zeile 2 der textBox, nach ENTER an dieser Position gelöscht und am Ende der textBox angehangen wird.
Das mit dem behandelten Tastatur-Event schaue ich mir nachher gleich an.
Eine Frage noch, was bedeutet "... viel schöner per GUI ausführen"?
Th.

06.08.2012 - 13:49 Uhr

Hallo zusammen,

ich habe in einem Form eine textbox1 (multiline).
In diese textbox1 kann der Anwender Befehle wie "alarm", "hilfe" usw. eingeben.
Es darf pro Zeile immer nur ein Befehl stehen.
Wenn die Zeile mit ENTER abgeschlossen wird, soll der Befehl verarbeitet werden.

Bis hierhin habe ich das Problem gelöst.

Besonderheiten:

  1. Durch Scrollen zwischen den Zeilen (Befehlen) soll es möglich sein, mit ENTER erneut die Verarbeitung zu starten. Der Cursor soll sich dabei auf einer beliebigen Position der Zeile befinden können. Es ist also eine Art Befehlswiederholung gemeint.

  2. Wenn der Anwender Befehle eingibt die es nicht gibt oder syntaktisch falsch sind, bekommt er von dem zu steuernden System eine Fehlermeldung. Solche Fehleingaben brauchen also nicht vom Programm abgefangen zu werden.
    Was mir aber denoch Probleme bereitet, ist die Eingabe von nur ENTER oder auch mehrmals. Der Inhalt der textbox1 wird dabei natürlich verschoben was nicht nur unschön aussieht und dazu noch sinnlos ist.

Ich habe jetzt schon so viel probiert und wahrscheinlich auch etwas den Faden verloren! Wer kann mir ein paar grundlegende Tipps geben wie man so etwas lösen könnte.

Danke ...
Thomas
ps: Es ist nicht ganz einfach die Probleme zu beschreiben, bei Unklarheiten bitte einfach melden.

28.09.2011 - 20:25 Uhr

Hallo zusammen,
ich habe wieder einmal eine Frage zum guten alten Thema der "Seriellen Schnittstelle".
Ein PC empfängt Daten auf seiner COM1 von einer elektrischen Anlage. Diese Daten werden von einer Software gespeichert und können bei Bedarf ausgewertet werden.
Ich möchte auf diesem PC ein kleines Tool einsetzen, welches die empfangenen Daten in einer Art Monitor ständig in einem Fenster anzeigt.
Wenn ich mein Tool auf diesem PC starten will, kommt der berechtigte Hinweis, dass die COM1 schon geöffnet ist.
Wie ist in solch einem Fall zu verfahren?
Übrigens wenn ich nur mein Tool starte, funktioniert es.

Viele Grüße ...
Thomas.A
🙁

20.03.2011 - 17:28 Uhr

Hallo Lars,
also ich habe jetzt noch einmal 2h mit diversen Test's verbracht.
Es gelingt mir Datentypen wie string, int, bool und Enumeratoren (wie Parity oder Handshake) zu serialisieren. Aber wie kann ich z.B. die Checked-Eigenschaft eines RadioButton aufnehmen?
Ich habe zwar das Problem im Moment ausgetrickst, in dem ich über eine bool Variable die Entscheidung checked/unchecked entscheide und setze. Das ist doch aber bestimmt nicht sauber programmiert!!!???

Thomas

20.03.2011 - 12:03 Uhr

Hallo zusammen,
ich habe ein Programm, welches über ein XML-File konfiguriert wird. Es werden zum Beispiel die Parameter einer seriellen Schnittstelle gelesen und dementsprechend eingestellt. Ich wollte nun diese Konfiguration erweitern, es soll der Zustand eines RadioButton aufgenommen werden.
Ist das überhaupt möglich?
Wer hat eine Denkanstoß für mich?
Danke ...

22.03.2010 - 19:19 Uhr

hallo MartinH,

habe es für den XP-PC nach deinem vorschlag gelöst.
damit ist die ausgabe akzeptabel.
demnächst soll das tool auch unter windows2000 eingesetzt werden.
mal sehen was mich dann erwartet!?
vielen dank an alle für die hilfe.
bis demnächst ...

thomas.a

21.03.2010 - 17:43 Uhr

Hallo herbivore,

das Steuerzeichen, um beim Beispiel zu bleiben \x1c, zu entfernen ist sicherlich nicht das Problem. Es ist aber leider nicht das einzigste Zeichen, welches die Quadrate in der TextBox erzeugt.
Ich verstehe den Unterschied nicht, weshalb bei Windows 7 alles ok. ist und bei XP dagegen nicht. Es ist das gleiche Tool auf beiden PC's installiert.
Im Anhang befindet sich eine Logdatei.
Unter Windows 7 korrekte Darstellung, unter XP ist das Problem zu sehen.

Viele Grüße ...
Thomas.A

21.03.2010 - 10:16 Uhr

Hallo zusammen,
ich habe ein kleines Tool geschrieben, welches Daten über eine serielle Schnittstelle einliest. Die Daten können per Auswahl auch in eine Log-datei geschrieben werden. Das Tool ist mit VisualC# Express 2008 und dem .NET 3.5 unter WIN7 erstellt. Alles läuft wunderbar.
Wenn ich dieses Tool auf einem anderen PC, in meinem Fall unter XP Prof. SP3 mit installiertem .NET 3.5 benutze, passiert folgendes.
In der TextBox werden an bestimmten Stellen Sonderzeichen angezeigt. Die Analyse der Logdatei hat ergeben, dass es sich z.B. um einen Wert \x1c handelt. Er wird in der TextBox als kleines Quadrat angezeigt.
Warum sehe ich dieses Zeichen auf dem XP-Rechner und auf dem WIN7-Rechner nicht.
Ein Experimentieren mit den Schriftarten der TextBox hat nichts gebracht, oder ich mache was grundsätzliches falsch.
Vielleicht kann mir ja jemand einen Tip geben...

12.05.2006 - 18:51 Uhr

Hallo herbivore,
ich habe mir Deinen letzten Hinweis,

" Hallo Thomas.A,

bist du dir sicher, dass du es nicht an anderer Stelle wieder setzt? Ansonsten poste mal ein minimales Beispiel, das den Fehler zeigt.

herbivore"

zu Herzen genommen und habe mein Problem noch einmal in einer Testanwendung nachvollzogen.
Also es ist folgendermaßen:
Ich habe mit
dateTimePicker1.Checked = false;
die Checked-Eigenschaft ausgeschaltet, danach aber dem Steuerelement ein Datum zugewiesen. Dabei wird die Checked-Eigenschaft wieder aktiviert!!!!!
Das war mein ganzes Problem.
Wenn ich die Befehle in die richtige Reihenfolge setzte, funktioniert alles wie gewünscht.

Noch mal vielen Dank für deine Mühe, wir hören bzw. sehen uns in diesem Forum bestimmt noch öffters.

11.05.2006 - 19:42 Uhr

Hallo herbivore

ich würde morgen ein ganz kleines Beispiel erstellen und es Dir schicken.
Macht man das per Mail oder anders?
Habe so etwas noch nie getan.

Danke für das Angebot!

11.05.2006 - 19:35 Uhr

Hallo herbivore,

es geht ja gut los bei mir.
Ich habe genau diese zwei Zeilen in meiner Anwendung in der Form1_Load() plaziert.
Die erste Zeile funktioniert ja auch noch. Ich meine, je nachdem ob ich
.ShowCheckBox = true oder = false angebe, ist die CheckBox im dateTimePicker vorhanden oder nicht vorhanden. Das ist o.k.
Die Zeile .Checked = false zeigt mir allerdings immer und ständig die CheckBox im
dateTimePicker markiert, also mit Häkchen an. Und gerade dieses Häkchen möchte ich löschen, genau so wie wenn ich es mit der Maus anklicke.

11.05.2006 - 19:16 Uhr

Also ich möchte die CheckBox im Steuerelement dateTimePicker per Code markieren bzw. die Markierung löschen.

11.05.2006 - 17:09 Uhr

Habe die Version des .NET gerade mit Environment.Version ausgelesen.
Es wird mir die 2.0.50727.42 angezeigt.

Ich denke bald das ich grundsätzlich was falsch mache.
Also meine Zeilen zur Steuerung des dateTimePicker befinden sich ind der Form1_Load().

  dateTimePicker1.ShowCheckBox = true;  
  dateTimePicker1.Checked = false;  

Ergibt keine Änderung in der Bildschirmanzeige.
Mit den verschiedenen Threads kann ich leider nichts anfangen. Ich habe mir zu Testzwecken zu diesem Problem nur ein Form mit diesem einen DateTimePicker erstellt.

11.05.2006 - 16:50 Uhr

Hi,
also mit Checked habe ich es probiert, oder ich mache was ganz falsch.
dateTimePicker1.Checked = false;
wird zwar nicht angemeckert, die Eigenschaft wird wohl auch so gesetzt, aber der Bildschirm ändert sich nicht. Das heißt der Haken ist nach wie vor gesetzt!?

11.05.2006 - 13:40 Uhr

Hallo Zusammen,
ich bin neu hier und auf dieses Forum sehr gespannt .
Die letzten 3Jahre habe ich mich mit Visual C++ und den MFC beschäftigt und bin jetzt auf allgemeines Anraten zu C# gewechselt.
Hier nun gleich mein erstes Problem.

Ich habe in meinem Formular ein Steuerelement dateTimePicker. In den Eigenschaften habe ich die CheckBox eingeschaltet. Sie wird bei Programmausführung auch korrekt angezeigt und die Abfrage mit der Checked-Methode funktioniert ebenfalls.
Wie kann ich aber die Markierung per Code aus.- u. einschalten?

Bin für jeden Hinweis dankbar.
Bis bald ---