<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.dotnetzone.gr:443/cs/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>WinForms</title><link>https://www.dotnetzone.gr:443/cs/forums/12/ShowForum.aspx</link><description>Θέματα για rich client / windows εφαρμογές, σε οποιαδήποτε γλώσσα (VB.NET, C#, managed C++, κ.α.)</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Απ: barcode scanner - reader</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/72190.aspx</link><pubDate>Sun, 24 Feb 2013 11:10:22 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:72190</guid><dc:creator>Parhs88</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/72190.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=72190</wfw:commentRss><description>Εγω εχω κανει κατι αντιστοιχο με της MOTOROLA το LS2208 που ειναι τζαμι.&lt;div&gt;Εχω χρησιμοποιησει OPOS driver (οποιος θελει λεπτομερειες ας ρωτησει) σε συνδιασμο με ενα&amp;nbsp;event aggregator /messagebus &amp;nbsp;pattern στην εφαρμογή .Ετσι οταν ερχεται κατι στο σκαννερ παει παντου οπου θελω. Εχω δει αλλες υλοποιησεις που ειχαν κανει χωριστο προγραμμα server για το scanner που το ακουγε με σειριακή!&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;</description></item><item><title>Απ: barcode scanner - reader</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/72149.aspx</link><pubDate>Wed, 13 Feb 2013 23:33:55 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:72149</guid><dc:creator>Libra Storm</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/72149.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=72149</wfw:commentRss><description>&lt;P&gt;Unhook Κάνεις; &lt;BR&gt;Είσαι σίγουρος ότι ο Mr. GC δεν το μαζεύει;&lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-3.gif" alt="Surprise" /&gt;&lt;BR&gt;Είναι global το HookProc;&lt;/P&gt;
&lt;P&gt;Δες τα παρακάτω links.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/windows/desktop/ms644960(v=vs.85).aspx"&gt;http://msdn.microsoft.com/en-us/library/windows/desktop/ms644960(v=vs.85).aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://support.microsoft.com/kb/318804"&gt;http://support.microsoft.com/kb/318804&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;και μιά που "έμπλεξες" με API έχε και αυτό το site γιά reference.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.pinvoke.net/"&gt;http://www.pinvoke.net/&lt;/A&gt;&lt;/P&gt;</description></item><item><title>Απ: barcode scanner - reader</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/72065.aspx</link><pubDate>Thu, 07 Feb 2013 07:02:57 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:72065</guid><dc:creator>evagelos</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/72065.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=72065</wfw:commentRss><description>&lt;p&gt;Mετά απο αρκετή χρήση, σε κάποια χρονική στιγμή (δεν έχω βρει το πότε), σταματάει να κάνει hook το input απο το barcode reader.&lt;/p&gt;&lt;p&gt;Στην αρχή σκέφτηκα ότι επειδή έπεφτε &amp;nbsp;η σύνδεση του ιντερνετ αλλα δεν είναι αυτό γιατί το ελεγχο αυτό με το "OPENCONNECTION()"&lt;/p&gt;&lt;p&gt;καμια πρόταση για το τι πρέπει να κοιτάξω;&lt;/p&gt;</description></item><item><title>Απ: barcode scanner - reader</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/72024.aspx</link><pubDate>Sat, 26 Jan 2013 05:51:21 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:72024</guid><dc:creator>Libra Storm</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/72024.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=72024</wfw:commentRss><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;img src="http://www.dotnetzone.gr/cs/Themes/default/images/icon-quote.gif"&gt; &lt;strong&gt;evagelos:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;
&lt;P&gt;Σε ευχαριστώ για την απάντηση.κανα δυο ερωτήσεις που δεν κατάλαβα&lt;/P&gt;
&lt;P&gt;Καταρχήν έκανα και μια αλλαγή&lt;/P&gt;
&lt;P&gt;Εβαλα το &lt;EM&gt;myval = ""; &lt;/EM&gt;στο &lt;EM&gt;finally&lt;/EM&gt; για να μηδενίζει παντα.&lt;/P&gt;
&lt;P&gt;Ερωτήσεις:&lt;/P&gt;
&lt;P&gt;1) λες: &lt;FONT color=#008000&gt;cast εφόσον δεν έχει DBNull. Αν έχει System.DBNull.Value ως τιμή ακόμα και το Convert.ToInt16 θα σκάσειcast εφόσον δεν έχει DBNull. Αν έχει System.DBNull.Value ως τιμή ακόμα και το Convert.ToInt16 θα σκάσει&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;το πεδίο που καλώ είναι το ID του πινακα. Πρέπει να κάνω και εκεί DBNull;&lt;/P&gt;
&lt;P&gt;- Εννοώ ότι από την στιγμή που κάποιο πεδίο του πίνακα σου δέχεται&amp;nbsp;NULL τιμές δεν μπορείς να κάνεις cast στον τύπο τον οποίον περιέχει ( int, string κλπ ) γιατί θα σου βγάλει μήνυμα λάθους στις περιπτώσεις που η τιμή από την DataBase είναι NULL.&lt;BR&gt;- O τύπος &lt;FONT size=2 face=Consolas&gt;&lt;FONT size=2 face=Consolas&gt;&lt;/P&gt;
&lt;P&gt;- System.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#2b91af size=2 face=Consolas&gt;&lt;FONT color=#2b91af size=2 face=Consolas&gt;&lt;FONT color=#2b91af size=2 face=Consolas&gt;DBNull&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2 face=Consolas&gt;&lt;FONT size=2 face=Consolas&gt;.Value&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;- απλά εκφράζει την τιμή NULL που παίρνεις από την βάση σου σε τύπο του .net.&lt;/P&gt;
&lt;P&gt;- Στην περίπτωση που έχεις ID θα ήταν λάθος σχεδιασμού του πίνακα να το κάνεις να δέχεται NULL τιμές.&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#000000&gt;2) λες:&amp;nbsp;&lt;/FONT&gt;IDbConnection, IDbCommand κλπ. IDbConnection, IDbCommand κλπ.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#000000&gt;Οταν έχω mssql μια εντολή είναι isnull και στην mysql είναι ifnull. το IDBCommand με καλύπτει;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#000000&gt;- Δεν καταλαβαίνω την ερώτηση σου. Το &lt;/FONT&gt;&lt;FONT color=#008000&gt;IDbCommand &lt;/FONT&gt;&lt;FONT color=#000000&gt;είναι Interface,&amp;nbsp;αν εννοείς την περίπτωση στην οποία εκτελείται το command ως Query, τότε θα πάρεις τις τιμές τις οποίες&amp;nbsp;θέλεις από το select, είτε είναι isnull, ifnull ανάλογα με την&amp;nbsp;βάση.&lt;BR&gt;- Επίσης θα ήταν καλό όλα αυτά να είναι functions στο Database&amp;nbsp;layer&amp;nbsp;και να γυρίζουν την σωστή σύνταξη ανά περίπτωση (ISNULL σε SQL, IFNULL σε MySQL, NVL σε Oracle κλπ ).&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;- Πιστεύω ότι θα σε βοηθήσει καλύτερα το παρακάτω παράδειγμα, η 1η Open γυρνάει interface ανάλογα με το τι&amp;nbsp;Database type&amp;nbsp;έχεις δηλώσει ( ίσως σε κάποιο config file με το αντίστοιχο&amp;nbsp;connection string&amp;nbsp;),&amp;nbsp;το 2ο&amp;nbsp;δουλεύει με generics. &lt;BR&gt;- Και στις 2 περιπτώσεις&amp;nbsp;χρησιμοποιείς το&amp;nbsp;αντίστοιχο Interface.&lt;/P&gt;
&lt;P&gt;-Ας μην σου φαίνεται παρατραβηγμένη η υλοποίηση γιατί θα είναι&amp;nbsp;κρίμα να&amp;nbsp;χάσεις&amp;nbsp;δουλειά επειδή ο χ πελάτης έχει ήδη SQL ή κάποια άλλη βάση γιατί δεν αναφέρομαι μόνο στο συγκεκριμένο project αλλά γενικότερα. &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:black;BACKGROUND-COLOR:transparent;"&gt;    &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;public&lt;/SPAN&gt; partial &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;class&lt;/SPAN&gt; Form1 : Form
    {
        &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;private&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;static&lt;/SPAN&gt; DatabaseType _dbType &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; DatabaseType.SQL;

        &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;public&lt;/SPAN&gt; Form1()
        {
            InitializeComponent();
        }

        &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;public&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;static&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;enum&lt;/SPAN&gt; DatabaseType
        {
            OleDb,
            SQL,
            MySQL,
        }

        &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;public&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;static&lt;/SPAN&gt; IDbConnection Open(&lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;string&lt;/SPAN&gt; connectionString) 
        {
            IDbConnection con &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;null&lt;/SPAN&gt;;

            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;switch&lt;/SPAN&gt; (_dbType)
            {
                &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;case&lt;/SPAN&gt; DatabaseType.OleDb:
                    con &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;new&lt;/SPAN&gt; System.Data.OleDb.OleDbConnection(connectionString);
                    &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;break&lt;/SPAN&gt;;
                &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;case&lt;/SPAN&gt; DatabaseType.SQL:
                    con &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;new&lt;/SPAN&gt; System.Data.SqlClient.SqlConnection(connectionString);
                    &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;break&lt;/SPAN&gt;;
                &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;case&lt;/SPAN&gt; DatabaseType.MySQL:
                    &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;// TODO&lt;/SPAN&gt;
                    &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;break&lt;/SPAN&gt;;
            }

            con.Open();

            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;return&lt;/SPAN&gt; con;
        }

        &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;public&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;static&lt;/SPAN&gt; TConnection Open&amp;lt;TConnection&amp;gt;(&lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;string&lt;/SPAN&gt; connectionString) 
            where TConnection : IDbConnection, &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;new&lt;/SPAN&gt;()
        {
            TConnection con &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;new&lt;/SPAN&gt; TConnection();

            con.ConnectionString &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; connectionString;
            con.Open();

            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;return&lt;/SPAN&gt; con;
        }
    }&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;/P&gt;</description></item><item><title>Απ: barcode scanner - reader</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/72007.aspx</link><pubDate>Thu, 24 Jan 2013 21:41:42 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:72007</guid><dc:creator>evagelos</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/72007.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=72007</wfw:commentRss><description>&lt;p&gt;Σε ευχαριστώ για την απάντηση.κανα δυο ερωτήσεις που δεν κατάλαβα&lt;/p&gt;&lt;p&gt;Καταρχήν έκανα και μια αλλαγή&lt;/p&gt;&lt;p&gt;Εβαλα το &lt;em&gt;myval = ""; &lt;/em&gt;στο &lt;em&gt;finally&lt;/em&gt; για να μηδενίζει παντα.&lt;/p&gt;&lt;p&gt;Ερωτήσεις:&lt;/p&gt;&lt;p&gt;1) λες: &lt;font color="#008000"&gt;cast εφόσον δεν έχει DBNull. Αν έχει System.DBNull.Value ως τιμή ακόμα και το Convert.ToInt16 θα σκάσειcast εφόσον δεν έχει DBNull. Αν έχει System.DBNull.Value ως τιμή ακόμα και το Convert.ToInt16 θα σκάσει&lt;/font&gt;&lt;/p&gt;&lt;p&gt;το πεδίο που καλώ είναι το ID του πινακα. Πρέπει να κάνω και εκεί DBNull;&lt;/p&gt;&lt;p&gt;&lt;font color="#008000"&gt;&lt;font color="#000000"&gt;2) λες:&amp;nbsp;&lt;/font&gt;IDbConnection, IDbCommand κλπ.
IDbConnection, IDbCommand κλπ.&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color="#008000"&gt;&lt;font color="#000000"&gt;Οταν έχω mssql μια εντολή είναι isnull και στην mysql είναι ifnull. το IDBCommand με καλύπτει;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color="#008000"&gt;&lt;font color="#000000"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;/font&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;img src="http://www.dotnetzone.gr/cs/Themes/default/images/icon-quote.gif"&gt; &lt;strong&gt;Libra Storm:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;/p&gt;&lt;pre&gt;&lt;span style="color:black;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;       &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;public&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;void&lt;/span&gt; MyKeyDown(&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;object&lt;/span&gt; sender, KeyEventArgs e) &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;// &amp;lt;- DeviceKeyDown ή DeviceCallBack ή ότι άλλο θες, προτείνω όχι my.&lt;/span&gt;
        {
            &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;string&lt;/span&gt; value &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; &lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;""&lt;/span&gt;;
            &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;// &amp;lt;- Κενό&lt;/span&gt;
            &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;if&lt;/span&gt; (e.KeyValue &amp;gt;= ((&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;int&lt;/span&gt;)Keys.NumPad0) &amp;amp;&amp;amp; e.KeyValue &amp;lt;= ((&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;int&lt;/span&gt;)Keys.NumPad9))
            { &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;// numpad &amp;lt;- Θα ξεμείνεις από χαρτί στον εκτυπωτή;&lt;/span&gt;
                value &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; Convert.ToInt16(e.KeyValue &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;-&lt;/span&gt; ((&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;int&lt;/span&gt;)Keys.NumPad0)).ToString(); &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;// Convert.ToInt16;&lt;/span&gt;
            }
            &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;else&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;if&lt;/span&gt; (e.KeyValue &amp;gt;= ((&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;int&lt;/span&gt;)Keys.D0) &amp;amp;&amp;amp; e.KeyValue &amp;lt;= ((&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;int&lt;/span&gt;)Keys.D9))
            { 
                &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;// regular numbers&lt;/span&gt;
                value &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; Convert.ToInt16(e.KeyValue &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;-&lt;/span&gt; ((&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;int&lt;/span&gt;)Keys.D0)).ToString();
            }
            &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;else&lt;/span&gt; &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;// Έχεις ήδη φιλτράρει μόνο γιά νούμερα.&lt;/span&gt;
            {
                myval &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; &lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;""&lt;/span&gt;; &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;// αν είναι private εγώ βάζω _myval.&lt;/span&gt;
                myTimeStart &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; DateTime.Now; &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;// _&lt;/span&gt;

                &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;return&lt;/span&gt;;
            }

            &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;// Δεν χρειάζεται αυτός ο έλεγχος, θα γίνει return αν δεν είναι νούμερο στο else που βάλαμε, &lt;/span&gt;
            &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;// από την στιγμή που το barcode έχει μόνο Νούμερα.&lt;/span&gt;

            &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;//if (chkNumber(value) == true)&lt;/span&gt;
            &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;//{&lt;/span&gt;
            &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;//    myval = myval + value;&lt;/span&gt;
            &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;//    if (myval.Length == 1)&lt;/span&gt;
            &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;//        myTimeStart = DateTime.Now;&lt;/span&gt;
            &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;//}&lt;/span&gt;
            &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;//else&lt;/span&gt;
            &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;//{&lt;/span&gt;
            &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;//    myval = "";&lt;/span&gt;
            &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;//    myTimeStart = DateTime.Now;&lt;/span&gt;
            &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;//}&lt;/span&gt;

            myval &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; myval &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;+&lt;/span&gt; value; &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;// myval += value;&lt;/span&gt;

            &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;if&lt;/span&gt; (myval.Length == 1)
            {
                myTimeStart &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; DateTime.Now;
            }
            &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;else&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;if&lt;/span&gt; (myval.Length == barLength)
            {
                myTimerStop &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; DateTime.Now;
                TimeSpan span &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; myTimerStop &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;-&lt;/span&gt; myTimeStart; &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;// ή stopwatch όπως σωστά ανέφερε ο Παναγιώτης.&lt;/span&gt;

                &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;if&lt;/span&gt; (&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;this&lt;/span&gt;.OpenConnection() == &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;true&lt;/span&gt;) &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;// if (this.OpenConnection()) &lt;/span&gt;
                {
                    &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;try&lt;/span&gt;
                    {
                        &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;if&lt;/span&gt; (loadtrdrObj(myval) == &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;true&lt;/span&gt;) &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;// if (loadtrdrObj(myval))&lt;/span&gt;
                        {
                            &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;if&lt;/span&gt; (span.TotalMilliseconds &amp;lt; 100)
                            {
                                &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;if&lt;/span&gt; (SaveData() == 1) &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;// if (SaveData() &amp;gt; 0), αλλιώς αν θέλεις 0 ή 1 τότε γύρνα bool.&lt;/span&gt;
                                {
                                    RemTB.Text &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; &lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"Μαθητής: "&lt;/span&gt; &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;+&lt;/span&gt; myCustomer.Name &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;+&lt;/span&gt; Environment.NewLine &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;+&lt;/span&gt;
                                        &lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"Level: "&lt;/span&gt; &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;+&lt;/span&gt; myCustomer.Level &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;+&lt;/span&gt; Environment.NewLine &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;+&lt;/span&gt;
                                        &lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"Σχόλια: "&lt;/span&gt; &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;+&lt;/span&gt; myCustomer.Remarks &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;+&lt;/span&gt; Environment.NewLine &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;+&lt;/span&gt;
                                        &lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"Ωρα: "&lt;/span&gt; &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;+&lt;/span&gt; DateTime.Now &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;+&lt;/span&gt; Environment.NewLine &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;+&lt;/span&gt;
                                        &lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"Τελ. Ημ/νία Πληρωμής: "&lt;/span&gt; &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;+&lt;/span&gt; myCustomer.LastPayDate;
                                    
                                    &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;// RemTB; txtStudent.Text (textBox), lblStudent.Text (label), cmd or btn (Button) κλπ.&lt;/span&gt;
                                    
                                    &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;//positioncontrols();&lt;/span&gt;
                                    &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;//this.Activate(); // γιατί μόνο σε αυτό this;&lt;/span&gt;
                                    &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;//onePing();&lt;/span&gt;

                                    &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;// είτε&lt;/span&gt;

                                    &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;this&lt;/span&gt;.positioncontrols();
                                    &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;base&lt;/span&gt;.Activate(); &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;// ή this&lt;/span&gt;
                                    &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;this&lt;/span&gt;.onePing();
                                }
                            }

                            myval &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; &lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;""&lt;/span&gt;;
                        }
                        &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;else&lt;/span&gt;
                        {
                            &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;// /n/n ?. /n = Unix, /r = Old MacOS /r/n = Windows.&lt;/span&gt;
                            MessageBox.Show(&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"Δεν βρέθηκε μαθητής με αυτό το Barcode\n\n"&lt;/span&gt; &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;+&lt;/span&gt; myval,
                                &lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"Λάθος"&lt;/span&gt;, 
                                MessageBoxButtons.OK, 
                                MessageBoxIcon.Error);
                        }
                    }
                    &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;catch&lt;/span&gt; (MySqlException ex)
                    {
                        MessageBox.Show(ex.ToString());
                    }
                    &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;finally&lt;/span&gt;
                    {
                        &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;this&lt;/span&gt;.CloseConnection();
                    }
                }
                &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;else&lt;/span&gt;
                {
                    MessageBox.Show(&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"Δεν υπάρχει σύνδεση!!!"&lt;/span&gt;);
                }
            }
        }

        &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;private&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;void&lt;/span&gt; positioncontrols() &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;// &amp;lt;- PositionControls() ή καλυτερα CenterForm()&lt;/span&gt;
        {
            Rectangle rect &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; Screen.PrimaryScreen.WorkingArea;

            &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;//Divide the screen in half, and find the center of the form to center it&lt;/span&gt;
            &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;this&lt;/span&gt;.Top &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; (rect.Height &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;/&lt;/span&gt; 2) &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;-&lt;/span&gt; (&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;this&lt;/span&gt;.Height &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;/&lt;/span&gt; 2); &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;// this.Top = (rect.Height - this.Height) / 2;&lt;/span&gt;
            &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;this&lt;/span&gt;.Left &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; (rect.Width &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;/&lt;/span&gt; 2) &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;-&lt;/span&gt; (&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;this&lt;/span&gt;.Width &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;/&lt;/span&gt; 2);
        }

        &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;private&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;bool&lt;/span&gt; chkNumber(&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;string&lt;/span&gt; chk) &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;// &amp;lt;- CheckNumber ή IsNumber (string checkString)&lt;/span&gt;
        {
            &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;double&lt;/span&gt; number;
            CultureInfo culture &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; CultureInfo.CreateSpecificCulture(&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"el-GR"&lt;/span&gt;); &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;// γιατί el-GR; Εγώ έχω en-US δεν θα μου κάνει σωστή μετατροπή.&lt;/span&gt;
            NumberStyles style &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; NumberStyles.Number;

            &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;//if (Double.TryParse(chk, style, culture, out number)) &lt;/span&gt;
            &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;//    return true;&lt;/span&gt;
            &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;//else&lt;/span&gt;
            &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;//    return false;&lt;/span&gt;

            &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;return&lt;/span&gt; Double.TryParse(chk, style, culture, &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;out&lt;/span&gt; number);
        }

        &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;private&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;bool&lt;/span&gt; loadtrdrObj(&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;string&lt;/span&gt; barcode) &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;// Τα ονόματα των functions πρέπει να είναι κατανοητά.&lt;/span&gt;
        {
            &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;bool&lt;/span&gt; found &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;false&lt;/span&gt;;

            &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;string&lt;/span&gt; SQLtrdr &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; &lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"select t.company, t.trdr, t.name, ifnull(t.epipedo, 0)level, "&lt;/span&gt; &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;+&lt;/span&gt;
                 &lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"(select date from trans where trdr = t.trdr and type=2 order by date desc limit 1) trndate, "&lt;/span&gt; &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;+&lt;/span&gt;
                 &lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"ifnull(t.remarks,'') remarks "&lt;/span&gt; &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;+&lt;/span&gt;
                 &lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"from trdr t "&lt;/span&gt; &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;+&lt;/span&gt;
                 &lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"where t.barcode = @barcode"&lt;/span&gt;;

            &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;// Caps προτείνω&lt;/span&gt;
            &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;string&lt;/span&gt; SQLtrdrCAPS &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; &lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"SELECT t.company, t.trdr, t.name, IFNULL(t.epipedo, 0) level, "&lt;/span&gt; &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;+&lt;/span&gt; 
                 &lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"(SELECT date FROM trans WHERE trdr = t.trdr AND type = 2 ORDER BY date DESC limit 1) trndate, "&lt;/span&gt; &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;+&lt;/span&gt;
                 &lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"IFNULL(t.remarks,'') remarks "&lt;/span&gt; &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;+&lt;/span&gt;
                 &lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"FROM trdr t "&lt;/span&gt; &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;+&lt;/span&gt;
                 &lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"WHERE t.barcode = @barcode"&lt;/span&gt;;

            MySqlCommand cmd &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;new&lt;/span&gt; MySqlCommand(SQLtrdr, connection);
            cmd.Parameters.AddWithValue(&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"@barcode"&lt;/span&gt;, barcode);

            DataTable dt &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;new&lt;/span&gt; DataTable(); &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;// ή Using&lt;/span&gt;

            MySqlDataReader dataReader &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; cmd.ExecuteReader();

            dt.Load(dataReader);

            &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;if&lt;/span&gt; (dt.Rows.Count &amp;gt; 0)
            {
                Customer myCust &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;new&lt;/span&gt; Customer
                    (
                        (Int16)(dt.Rows[0][&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"company"&lt;/span&gt;]), &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;// cast εφόσον δεν έχει DBNull. Αν έχει System.DBNull.Value ως τιμή ακόμα και το Convert.ToInt16 θα σκάσει.&lt;/span&gt;
                        Convert.ToInt32(dt.Rows[0][&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"trdr"&lt;/span&gt;]), &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;// Το ίδιο&lt;/span&gt;
                        dt.Rows[0][&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"name"&lt;/span&gt;].ToString(), &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;// &amp;lt;&amp;lt; &amp;gt;&amp;gt;&lt;/span&gt;
                        Convert.ToInt16(dt.Rows[0][&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"level"&lt;/span&gt;]), 
                        Convert.ToDateTime(dt.Rows[0][&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"trndate"&lt;/span&gt;]),
                        dt.Rows[0][&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"remarks"&lt;/span&gt;].ToString()
                    );

                myCustomer &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; myCust;

                found &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;//else&lt;/span&gt;
            &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;//{&lt;/span&gt;
            &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;//    found = false; // Ok αλλά είναι ήδη false&lt;/span&gt;
            &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;//}&lt;/span&gt;
            &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;//close Data Reader // πλεονασμός&lt;/span&gt;
            dataReader.Close(); &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;// το βλέπουμε τι κάνει&lt;/span&gt;
            dt.Dispose(); &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;// end using&lt;/span&gt;

            &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;return&lt;/span&gt; found; &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;// bFound&lt;/span&gt;
        }

        &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;/*
         * Το πιό σημαντικό είναι ότι πρέπει να απομονώσεις τελείως τις συναρτήσεις που έχουν να κάνουν με το ADO (SaveData, CloseConnection κλπ).
         * Φτιάξε ένα DLL και βάλε εκεί ότι έχει να κάνει με την βάση.
         * Έτσι θα φτιάξεις μία βιβλιοθήκη που θα χρησιμοποιείς σε κάθε project και θα κάνεις την δουλειά σου καλύτερα και γρήγορα.
         * Επίσης μην ξεχνάς ότι το ADO σου δίνει την δυνατότητα να το διαχειρίζεσαι μέσα από τα Interfaces που σου δίνει.
         * π.χ IDbConnection, IDbCommand κλπ.
         * Έτσι θα μπορείς να παραμετροποιείς τις εφαρμογές που θα φτιάξεις στο μέλλον με τέτοιον τρόπο που θα μπορείς να
         * κάνεις connect σε όλες τις βάσεις δεδομένων, MySQL, SQL, Oracle κλπ χρησιμοποιώντας τον ίδιο κώδικα.
         */&lt;/span&gt;
        &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;private&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;int&lt;/span&gt; SaveData()
        {
            &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;string&lt;/span&gt; SQLtrdr &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; &lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;""&lt;/span&gt;;
            &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;// int r = 0;&lt;/span&gt;
            SQLtrdr &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; &lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"INSERT INTO trans(company, date, trdr, type, insdate, upddate) VALUES (@company, @date, @trdr, @type, @insdate, @upddate)"&lt;/span&gt;;
            MySqlCommand myCommand &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;new&lt;/span&gt; MySqlCommand();

            myCommand.Parameters.AddWithValue(&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"@company"&lt;/span&gt;, myCustomer.Company);
            myCommand.Parameters.AddWithValue(&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"@date"&lt;/span&gt;, DateTime.Now);
            myCommand.Parameters.AddWithValue(&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"@trdr"&lt;/span&gt;, myCustomer.Trdr);
            myCommand.Parameters.AddWithValue(&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"@type"&lt;/span&gt;, 999);
            myCommand.Parameters.AddWithValue(&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"@insdate"&lt;/span&gt;, DateTime.Now);
            myCommand.Parameters.AddWithValue(&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"@upddate"&lt;/span&gt;, DateTime.Now);

            myCommand.CommandText &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; SQLtrdr;
            myCommand.Connection &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; connection; &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;// Το connection είναι συνέχεια ανοικτό; &lt;/span&gt;
                                               &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;// Αν ναι σου προτείνω να το ανοίγεις και να το κλείνεις κάθε φορά.&lt;/span&gt;
            &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;// r = myCommand.ExecuteNonQuery();&lt;/span&gt;

            &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;return&lt;/span&gt; myCommand.ExecuteNonQuery();

            &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;//if (r &amp;gt; 0)&lt;/span&gt;
            &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;//{&lt;/span&gt;
            &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;//    return 1;&lt;/span&gt;
            &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;//}&lt;/span&gt;
            &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;//else&lt;/span&gt;
            &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;//{&lt;/span&gt;
            &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;//    return 0;&lt;/span&gt;
            &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;//}&lt;/span&gt;

            &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;// Να χρησιμοποιείς ένα στυλ σε τέτοιες περιπτώσεις όπως π.χ. &lt;/span&gt;
            &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;// στο αν θα βάζεις Curly Brackets σε conditions με μία πρόταση στο if ή στο else&lt;/span&gt;
            &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;// γιατί πριν λες:&lt;/span&gt;

            &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;//if (Double.TryParse(chk, style, culture, out number)) &lt;/span&gt;
            &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;//    return true;&lt;/span&gt;
            &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;//else&lt;/span&gt;
            &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;//    return false;&lt;/span&gt;
                      
        }

        &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;public&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;void&lt;/span&gt; onePing() &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;// ή και public static void αν χρησιμοποιείται και από αλλού.&lt;/span&gt;
        {
            SystemSounds.Asterisk.Play();
        }&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="color:black;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;&lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span style="color:black;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;Και τέλος, δεν είναι δύσκολο να περάσεις σε  framework 4.0, επίσης υπάρχουν variable length barcode formats που αναγνωρίζουν και ASCII τα οποία είναι πιό βολικά και αναγνώσιμα από νούμερα όπως το 128B.&lt;br&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="color:black;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;Καλή επιτυχία στο project σου.&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;</description></item><item><title>Απ: barcode scanner - reader</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/71841.aspx</link><pubDate>Fri, 04 Jan 2013 09:37:22 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:71841</guid><dc:creator>Libra Storm</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/71841.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=71841</wfw:commentRss><description>&lt;PRE&gt;&lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:black;BACKGROUND-COLOR:transparent;"&gt;       &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;public&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;void&lt;/SPAN&gt; MyKeyDown(&lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;object&lt;/SPAN&gt; sender, KeyEventArgs e) &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;// &amp;lt;- DeviceKeyDown ή DeviceCallBack ή ότι άλλο θες, προτείνω όχι my.&lt;/SPAN&gt;
        {
            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;string&lt;/SPAN&gt; value &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:#666666;BACKGROUND-COLOR:#e4e4e4;"&gt;""&lt;/SPAN&gt;;
            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;// &amp;lt;- Κενό&lt;/SPAN&gt;
            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;if&lt;/SPAN&gt; (e.KeyValue &amp;gt;= ((&lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;int&lt;/SPAN&gt;)Keys.NumPad0) &amp;amp;&amp;amp; e.KeyValue &amp;lt;= ((&lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;int&lt;/SPAN&gt;)Keys.NumPad9))
            { &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;// numpad &amp;lt;- Θα ξεμείνεις από χαρτί στον εκτυπωτή;&lt;/SPAN&gt;
                value &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; Convert.ToInt16(e.KeyValue &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;-&lt;/SPAN&gt; ((&lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;int&lt;/SPAN&gt;)Keys.NumPad0)).ToString(); &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;// Convert.ToInt16;&lt;/SPAN&gt;
            }
            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;else&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;if&lt;/SPAN&gt; (e.KeyValue &amp;gt;= ((&lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;int&lt;/SPAN&gt;)Keys.D0) &amp;amp;&amp;amp; e.KeyValue &amp;lt;= ((&lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;int&lt;/SPAN&gt;)Keys.D9))
            { 
                &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;// regular numbers&lt;/SPAN&gt;
                value &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; Convert.ToInt16(e.KeyValue &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;-&lt;/SPAN&gt; ((&lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;int&lt;/SPAN&gt;)Keys.D0)).ToString();
            }
            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;else&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;// Έχεις ήδη φιλτράρει μόνο γιά νούμερα.&lt;/SPAN&gt;
            {
                myval &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:#666666;BACKGROUND-COLOR:#e4e4e4;"&gt;""&lt;/SPAN&gt;; &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;// αν είναι private εγώ βάζω _myval.&lt;/SPAN&gt;
                myTimeStart &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; DateTime.Now; &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;// _&lt;/SPAN&gt;

                &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;return&lt;/SPAN&gt;;
            }

            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;// Δεν χρειάζεται αυτός ο έλεγχος, θα γίνει return αν δεν είναι νούμερο στο else που βάλαμε, &lt;/SPAN&gt;
            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;// από την στιγμή που το barcode έχει μόνο Νούμερα.&lt;/SPAN&gt;

            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;//if (chkNumber(value) == true)&lt;/SPAN&gt;
            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;//{&lt;/SPAN&gt;
            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;//    myval = myval + value;&lt;/SPAN&gt;
            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;//    if (myval.Length == 1)&lt;/SPAN&gt;
            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;//        myTimeStart = DateTime.Now;&lt;/SPAN&gt;
            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;//}&lt;/SPAN&gt;
            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;//else&lt;/SPAN&gt;
            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;//{&lt;/SPAN&gt;
            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;//    myval = "";&lt;/SPAN&gt;
            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;//    myTimeStart = DateTime.Now;&lt;/SPAN&gt;
            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;//}&lt;/SPAN&gt;

            myval &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; myval &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;+&lt;/SPAN&gt; value; &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;// myval += value;&lt;/SPAN&gt;

            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;if&lt;/SPAN&gt; (myval.Length == 1)
            {
                myTimeStart &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; DateTime.Now;
            }
            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;else&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;if&lt;/SPAN&gt; (myval.Length == barLength)
            {
                myTimerStop &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; DateTime.Now;
                TimeSpan span &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; myTimerStop &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;-&lt;/SPAN&gt; myTimeStart; &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;// ή stopwatch όπως σωστά ανέφερε ο Παναγιώτης.&lt;/SPAN&gt;

                &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;if&lt;/SPAN&gt; (&lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;this&lt;/SPAN&gt;.OpenConnection() == &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;true&lt;/SPAN&gt;) &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;// if (this.OpenConnection()) &lt;/SPAN&gt;
                {
                    &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;try&lt;/SPAN&gt;
                    {
                        &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;if&lt;/SPAN&gt; (loadtrdrObj(myval) == &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;true&lt;/SPAN&gt;) &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;// if (loadtrdrObj(myval))&lt;/SPAN&gt;
                        {
                            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;if&lt;/SPAN&gt; (span.TotalMilliseconds &amp;lt; 100)
                            {
                                &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;if&lt;/SPAN&gt; (SaveData() == 1) &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;// if (SaveData() &amp;gt; 0), αλλιώς αν θέλεις 0 ή 1 τότε γύρνα bool.&lt;/SPAN&gt;
                                {
                                    RemTB.Text &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:#666666;BACKGROUND-COLOR:#e4e4e4;"&gt;"Μαθητής: "&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;+&lt;/SPAN&gt; myCustomer.Name &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;+&lt;/SPAN&gt; Environment.NewLine &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;+&lt;/SPAN&gt;
                                        &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:#666666;BACKGROUND-COLOR:#e4e4e4;"&gt;"Level: "&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;+&lt;/SPAN&gt; myCustomer.Level &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;+&lt;/SPAN&gt; Environment.NewLine &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;+&lt;/SPAN&gt;
                                        &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:#666666;BACKGROUND-COLOR:#e4e4e4;"&gt;"Σχόλια: "&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;+&lt;/SPAN&gt; myCustomer.Remarks &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;+&lt;/SPAN&gt; Environment.NewLine &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;+&lt;/SPAN&gt;
                                        &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:#666666;BACKGROUND-COLOR:#e4e4e4;"&gt;"Ωρα: "&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;+&lt;/SPAN&gt; DateTime.Now &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;+&lt;/SPAN&gt; Environment.NewLine &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;+&lt;/SPAN&gt;
                                        &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:#666666;BACKGROUND-COLOR:#e4e4e4;"&gt;"Τελ. Ημ/νία Πληρωμής: "&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;+&lt;/SPAN&gt; myCustomer.LastPayDate;
                                    
                                    &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;// RemTB; txtStudent.Text (textBox), lblStudent.Text (label), cmd or btn (Button) κλπ.&lt;/SPAN&gt;
                                    
                                    &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;//positioncontrols();&lt;/SPAN&gt;
                                    &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;//this.Activate(); // γιατί μόνο σε αυτό this;&lt;/SPAN&gt;
                                    &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;//onePing();&lt;/SPAN&gt;

                                    &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;// είτε&lt;/SPAN&gt;

                                    &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;this&lt;/SPAN&gt;.positioncontrols();
                                    &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;base&lt;/SPAN&gt;.Activate(); &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;// ή this&lt;/SPAN&gt;
                                    &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;this&lt;/SPAN&gt;.onePing();
                                }
                            }

                            myval &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:#666666;BACKGROUND-COLOR:#e4e4e4;"&gt;""&lt;/SPAN&gt;;
                        }
                        &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;else&lt;/SPAN&gt;
                        {
                            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;// /n/n ?. /n = Unix, /r = Old MacOS /r/n = Windows.&lt;/SPAN&gt;
                            MessageBox.Show(&lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:#666666;BACKGROUND-COLOR:#e4e4e4;"&gt;"Δεν βρέθηκε μαθητής με αυτό το Barcode\n\n"&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;+&lt;/SPAN&gt; myval,
                                &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:#666666;BACKGROUND-COLOR:#e4e4e4;"&gt;"Λάθος"&lt;/SPAN&gt;, 
                                MessageBoxButtons.OK, 
                                MessageBoxIcon.Error);
                        }
                    }
                    &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;catch&lt;/SPAN&gt; (MySqlException ex)
                    {
                        MessageBox.Show(ex.ToString());
                    }
                    &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;finally&lt;/SPAN&gt;
                    {
                        &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;this&lt;/SPAN&gt;.CloseConnection();
                    }
                }
                &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;else&lt;/SPAN&gt;
                {
                    MessageBox.Show(&lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:#666666;BACKGROUND-COLOR:#e4e4e4;"&gt;"Δεν υπάρχει σύνδεση!!!"&lt;/SPAN&gt;);
                }
            }
        }

        &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;private&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;void&lt;/SPAN&gt; positioncontrols() &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;// &amp;lt;- PositionControls() ή καλυτερα CenterForm()&lt;/SPAN&gt;
        {
            Rectangle rect &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; Screen.PrimaryScreen.WorkingArea;

            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;//Divide the screen in half, and find the center of the form to center it&lt;/SPAN&gt;
            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;this&lt;/SPAN&gt;.Top &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; (rect.Height &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;/&lt;/SPAN&gt; 2) &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;-&lt;/SPAN&gt; (&lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;this&lt;/SPAN&gt;.Height &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;/&lt;/SPAN&gt; 2); &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;// this.Top = (rect.Height - this.Height) / 2;&lt;/SPAN&gt;
            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;this&lt;/SPAN&gt;.Left &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; (rect.Width &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;/&lt;/SPAN&gt; 2) &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;-&lt;/SPAN&gt; (&lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;this&lt;/SPAN&gt;.Width &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;/&lt;/SPAN&gt; 2);
        }

        &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;private&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;bool&lt;/SPAN&gt; chkNumber(&lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;string&lt;/SPAN&gt; chk) &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;// &amp;lt;- CheckNumber ή IsNumber (string checkString)&lt;/SPAN&gt;
        {
            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;double&lt;/SPAN&gt; number;
            CultureInfo culture &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; CultureInfo.CreateSpecificCulture(&lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:#666666;BACKGROUND-COLOR:#e4e4e4;"&gt;"el-GR"&lt;/SPAN&gt;); &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;// γιατί el-GR; Εγώ έχω en-US δεν θα μου κάνει σωστή μετατροπή.&lt;/SPAN&gt;
            NumberStyles style &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; NumberStyles.Number;

            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;//if (Double.TryParse(chk, style, culture, out number)) &lt;/SPAN&gt;
            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;//    return true;&lt;/SPAN&gt;
            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;//else&lt;/SPAN&gt;
            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;//    return false;&lt;/SPAN&gt;

            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;return&lt;/SPAN&gt; Double.TryParse(chk, style, culture, &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;out&lt;/SPAN&gt; number);
        }

        &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;private&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;bool&lt;/SPAN&gt; loadtrdrObj(&lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;string&lt;/SPAN&gt; barcode) &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;// Τα ονόματα των functions πρέπει να είναι κατανοητά.&lt;/SPAN&gt;
        {
            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;bool&lt;/SPAN&gt; found &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;false&lt;/SPAN&gt;;

            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;string&lt;/SPAN&gt; SQLtrdr &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:#666666;BACKGROUND-COLOR:#e4e4e4;"&gt;"select t.company, t.trdr, t.name, ifnull(t.epipedo, 0)level, "&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;+&lt;/SPAN&gt;
                 &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:#666666;BACKGROUND-COLOR:#e4e4e4;"&gt;"(select date from trans where trdr = t.trdr and type=2 order by date desc limit 1) trndate, "&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;+&lt;/SPAN&gt;
                 &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:#666666;BACKGROUND-COLOR:#e4e4e4;"&gt;"ifnull(t.remarks,'') remarks "&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;+&lt;/SPAN&gt;
                 &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:#666666;BACKGROUND-COLOR:#e4e4e4;"&gt;"from trdr t "&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;+&lt;/SPAN&gt;
                 &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:#666666;BACKGROUND-COLOR:#e4e4e4;"&gt;"where t.barcode = @barcode"&lt;/SPAN&gt;;

            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;// Caps προτείνω&lt;/SPAN&gt;
            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;string&lt;/SPAN&gt; SQLtrdrCAPS &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:#666666;BACKGROUND-COLOR:#e4e4e4;"&gt;"SELECT t.company, t.trdr, t.name, IFNULL(t.epipedo, 0) level, "&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;+&lt;/SPAN&gt; 
                 &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:#666666;BACKGROUND-COLOR:#e4e4e4;"&gt;"(SELECT date FROM trans WHERE trdr = t.trdr AND type = 2 ORDER BY date DESC limit 1) trndate, "&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;+&lt;/SPAN&gt;
                 &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:#666666;BACKGROUND-COLOR:#e4e4e4;"&gt;"IFNULL(t.remarks,'') remarks "&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;+&lt;/SPAN&gt;
                 &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:#666666;BACKGROUND-COLOR:#e4e4e4;"&gt;"FROM trdr t "&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;+&lt;/SPAN&gt;
                 &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:#666666;BACKGROUND-COLOR:#e4e4e4;"&gt;"WHERE t.barcode = @barcode"&lt;/SPAN&gt;;

            MySqlCommand cmd &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;new&lt;/SPAN&gt; MySqlCommand(SQLtrdr, connection);
            cmd.Parameters.AddWithValue(&lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:#666666;BACKGROUND-COLOR:#e4e4e4;"&gt;"@barcode"&lt;/SPAN&gt;, barcode);

            DataTable dt &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;new&lt;/SPAN&gt; DataTable(); &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;// ή Using&lt;/SPAN&gt;

            MySqlDataReader dataReader &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; cmd.ExecuteReader();

            dt.Load(dataReader);

            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;if&lt;/SPAN&gt; (dt.Rows.Count &amp;gt; 0)
            {
                Customer myCust &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;new&lt;/SPAN&gt; Customer
                    (
                        (Int16)(dt.Rows[0][&lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:#666666;BACKGROUND-COLOR:#e4e4e4;"&gt;"company"&lt;/SPAN&gt;]), &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;// cast εφόσον δεν έχει DBNull. Αν έχει System.DBNull.Value ως τιμή ακόμα και το Convert.ToInt16 θα σκάσει.&lt;/SPAN&gt;
                        Convert.ToInt32(dt.Rows[0][&lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:#666666;BACKGROUND-COLOR:#e4e4e4;"&gt;"trdr"&lt;/SPAN&gt;]), &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;// Το ίδιο&lt;/SPAN&gt;
                        dt.Rows[0][&lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:#666666;BACKGROUND-COLOR:#e4e4e4;"&gt;"name"&lt;/SPAN&gt;].ToString(), &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;// &amp;lt;&amp;lt; &amp;gt;&amp;gt;&lt;/SPAN&gt;
                        Convert.ToInt16(dt.Rows[0][&lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:#666666;BACKGROUND-COLOR:#e4e4e4;"&gt;"level"&lt;/SPAN&gt;]), 
                        Convert.ToDateTime(dt.Rows[0][&lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:#666666;BACKGROUND-COLOR:#e4e4e4;"&gt;"trndate"&lt;/SPAN&gt;]),
                        dt.Rows[0][&lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:#666666;BACKGROUND-COLOR:#e4e4e4;"&gt;"remarks"&lt;/SPAN&gt;].ToString()
                    );

                myCustomer &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; myCust;

                found &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;true&lt;/SPAN&gt;;
            }
            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;//else&lt;/SPAN&gt;
            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;//{&lt;/SPAN&gt;
            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;//    found = false; // Ok αλλά είναι ήδη false&lt;/SPAN&gt;
            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;//}&lt;/SPAN&gt;
            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;//close Data Reader // πλεονασμός&lt;/SPAN&gt;
            dataReader.Close(); &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;// το βλέπουμε τι κάνει&lt;/SPAN&gt;
            dt.Dispose(); &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;// end using&lt;/SPAN&gt;

            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;return&lt;/SPAN&gt; found; &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;// bFound&lt;/SPAN&gt;
        }

        &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;/*
         * Το πιό σημαντικό είναι ότι πρέπει να απομονώσεις τελείως τις συναρτήσεις που έχουν να κάνουν με το ADO (SaveData, CloseConnection κλπ).
         * Φτιάξε ένα DLL και βάλε εκεί ότι έχει να κάνει με την βάση.
         * Έτσι θα φτιάξεις μία βιβλιοθήκη που θα χρησιμοποιείς σε κάθε project και θα κάνεις την δουλειά σου καλύτερα και γρήγορα.
         * Επίσης μην ξεχνάς ότι το ADO σου δίνει την δυνατότητα να το διαχειρίζεσαι μέσα από τα Interfaces που σου δίνει.
         * π.χ IDbConnection, IDbCommand κλπ.
         * Έτσι θα μπορείς να παραμετροποιείς τις εφαρμογές που θα φτιάξεις στο μέλλον με τέτοιον τρόπο που θα μπορείς να
         * κάνεις connect σε όλες τις βάσεις δεδομένων, MySQL, SQL, Oracle κλπ χρησιμοποιώντας τον ίδιο κώδικα.
         */&lt;/SPAN&gt;
        &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;private&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;int&lt;/SPAN&gt; SaveData()
        {
            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;string&lt;/SPAN&gt; SQLtrdr &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:#666666;BACKGROUND-COLOR:#e4e4e4;"&gt;""&lt;/SPAN&gt;;
            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;// int r = 0;&lt;/SPAN&gt;
            SQLtrdr &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:#666666;BACKGROUND-COLOR:#e4e4e4;"&gt;"INSERT INTO trans(company, date, trdr, type, insdate, upddate) VALUES (@company, @date, @trdr, @type, @insdate, @upddate)"&lt;/SPAN&gt;;
            MySqlCommand myCommand &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;new&lt;/SPAN&gt; MySqlCommand();

            myCommand.Parameters.AddWithValue(&lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:#666666;BACKGROUND-COLOR:#e4e4e4;"&gt;"@company"&lt;/SPAN&gt;, myCustomer.Company);
            myCommand.Parameters.AddWithValue(&lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:#666666;BACKGROUND-COLOR:#e4e4e4;"&gt;"@date"&lt;/SPAN&gt;, DateTime.Now);
            myCommand.Parameters.AddWithValue(&lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:#666666;BACKGROUND-COLOR:#e4e4e4;"&gt;"@trdr"&lt;/SPAN&gt;, myCustomer.Trdr);
            myCommand.Parameters.AddWithValue(&lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:#666666;BACKGROUND-COLOR:#e4e4e4;"&gt;"@type"&lt;/SPAN&gt;, 999);
            myCommand.Parameters.AddWithValue(&lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:#666666;BACKGROUND-COLOR:#e4e4e4;"&gt;"@insdate"&lt;/SPAN&gt;, DateTime.Now);
            myCommand.Parameters.AddWithValue(&lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:#666666;BACKGROUND-COLOR:#e4e4e4;"&gt;"@upddate"&lt;/SPAN&gt;, DateTime.Now);

            myCommand.CommandText &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; SQLtrdr;
            myCommand.Connection &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:red;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; connection; &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;// Το connection είναι συνέχεια ανοικτό; &lt;/SPAN&gt;
                                               &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;// Αν ναι σου προτείνω να το ανοίγεις και να το κλείνεις κάθε φορά.&lt;/SPAN&gt;
            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;// r = myCommand.ExecuteNonQuery();&lt;/SPAN&gt;

            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;return&lt;/SPAN&gt; myCommand.ExecuteNonQuery();

            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;//if (r &amp;gt; 0)&lt;/SPAN&gt;
            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;//{&lt;/SPAN&gt;
            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;//    return 1;&lt;/SPAN&gt;
            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;//}&lt;/SPAN&gt;
            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;//else&lt;/SPAN&gt;
            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;//{&lt;/SPAN&gt;
            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;//    return 0;&lt;/SPAN&gt;
            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;//}&lt;/SPAN&gt;

            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;// Να χρησιμοποιείς ένα στυλ σε τέτοιες περιπτώσεις όπως π.χ. &lt;/SPAN&gt;
            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;// στο αν θα βάζεις Curly Brackets σε conditions με μία πρόταση στο if ή στο else&lt;/SPAN&gt;
            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;// γιατί πριν λες:&lt;/SPAN&gt;

            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;//if (Double.TryParse(chk, style, culture, out number)) &lt;/SPAN&gt;
            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;//    return true;&lt;/SPAN&gt;
            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;//else&lt;/SPAN&gt;
            &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;//    return false;&lt;/SPAN&gt;
                      
        }

        &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;public&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:blue;BACKGROUND-COLOR:transparent;"&gt;void&lt;/SPAN&gt; onePing() &lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:green;BACKGROUND-COLOR:transparent;"&gt;// ή και public static void αν χρησιμοποιείται και από αλλού.&lt;/SPAN&gt;
        {
            SystemSounds.Asterisk.Play();
        }&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:black;BACKGROUND-COLOR:transparent;"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:black;BACKGROUND-COLOR:transparent;"&gt;Και τέλος, δεν είναι δύσκολο να περάσεις σε  framework 4.0, επίσης υπάρχουν variable length barcode formats που αναγνωρίζουν και ASCII τα οποία είναι πιό βολικά και αναγνώσιμα από νούμερα όπως το 128B.&lt;BR&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN style="FONT-SIZE:11px;FONT-FAMILY:Courier New;FONT-WEIGHT:normal;COLOR:black;BACKGROUND-COLOR:transparent;"&gt;Καλή επιτυχία στο project σου.&lt;/SPAN&gt;&lt;/PRE&gt;</description></item><item><title>Απ: barcode scanner - reader</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/71815.aspx</link><pubDate>Wed, 02 Jan 2013 09:16:17 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:71815</guid><dc:creator>evagelos</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/71815.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=71815</wfw:commentRss><description>&lt;p&gt;με τα πολλά:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;table border="0" cellSpacing="0" cellPadding="0" width="100%"&gt;&lt;tr style="line-height:normal;vertical-align:top;"&gt;&lt;td style="width:40px;text-align:right;"&gt;&lt;pre style="margin:0px;padding:2px;color:gray;font-family:courier new;font-size:11px;border-right-width:1px;border-right-style:solid;"&gt;1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
 &lt;/pre&gt;&lt;/td&gt;&lt;td&gt;&lt;pre style="margin:0px;padding:2px 2px 2px 8px;"&gt;&lt;span style="color:black;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;public&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;void&lt;/span&gt; MyKeyDown(&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;object&lt;/span&gt; sender, KeyEventArgs e)
        {
            &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;string&lt;/span&gt; value &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; &lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;""&lt;/span&gt;;
            &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;if&lt;/span&gt; (e.KeyValue &amp;gt;= ((&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;int&lt;/span&gt;)Keys.NumPad0) &amp;amp;&amp;amp; e.KeyValue &amp;lt;= ((&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;int&lt;/span&gt;)Keys.NumPad9))
            { &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;// numpad&lt;/span&gt;
                value &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; Convert.ToInt16(e.KeyValue &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;-&lt;/span&gt; ((&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;int&lt;/span&gt;)Keys.NumPad0)).ToString();
            }
            &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;else&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;if&lt;/span&gt; (e.KeyValue &amp;gt;= ((&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;int&lt;/span&gt;)Keys.D0) &amp;amp;&amp;amp; e.KeyValue &amp;lt;= ((&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;int&lt;/span&gt;)Keys.D9))
            { &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;// regular numbers&lt;/span&gt;
                value &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; Convert.ToInt16(e.KeyValue &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;-&lt;/span&gt; ((&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;int&lt;/span&gt;)Keys.D0)).ToString();
            }


            &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;if&lt;/span&gt; (chkNumber(value) == &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;true&lt;/span&gt;)
            {
                myval &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; myval &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;+&lt;/span&gt; value;
                &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;if&lt;/span&gt; (myval.Length == 1)
                    myTimeStart &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; DateTime.Now;
            }
            &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;else&lt;/span&gt;
            {
                myval &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; &lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;""&lt;/span&gt;;
                myTimeStart &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; DateTime.Now;
            }


            &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;if&lt;/span&gt; (myval.Length == barLength)
            {
                myTimerStop &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; DateTime.Now;
                TimeSpan span &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; myTimerStop &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;-&lt;/span&gt; myTimeStart;

                &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;if&lt;/span&gt; (&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;this&lt;/span&gt;.OpenConnection() == &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;true&lt;/span&gt;)
                {
                    &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;try&lt;/span&gt;
                    {
                        &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;if&lt;/span&gt; (loadtrdrObj(myval) == &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;true&lt;/span&gt;)
                        {
                            &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;if&lt;/span&gt; (span.TotalMilliseconds &amp;lt; 100)
                            {
                                &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;if&lt;/span&gt; (SaveData() == 1)
                                {                                    
                                    RemTB.Text &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; &lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"Μαθητής: "&lt;/span&gt; &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;+&lt;/span&gt; myCustomer.Name &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;+&lt;/span&gt; Environment.NewLine &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;+&lt;/span&gt;
                                        &lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"Level: "&lt;/span&gt; &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;+&lt;/span&gt; myCustomer.Level &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;+&lt;/span&gt; Environment.NewLine &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;+&lt;/span&gt;
                                        &lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"Σχόλια: "&lt;/span&gt; +myCustomer.Remarks &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;+&lt;/span&gt; Environment.NewLine &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;+&lt;/span&gt; 
                                        &lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"Ωρα: "&lt;/span&gt; &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;+&lt;/span&gt; DateTime.Now &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;+&lt;/span&gt; Environment.NewLine &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;+&lt;/span&gt;
                                        &lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"Τελ. Ημ/νία Πληρωμής: "&lt;/span&gt; &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;+&lt;/span&gt; myCustomer.LastPayDate;

                                    positioncontrols();
                                    &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;this&lt;/span&gt;.Activate();
                                    onePing();
                                }
                            }
                            myval &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; &lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;""&lt;/span&gt;;
                        }
                        &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;else&lt;/span&gt;
                        {
                            MessageBox.Show(&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"Δεν βρέθηκε μαθητής με αυτό το Barcode\n\n"&lt;/span&gt; &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;+&lt;/span&gt; myval, &lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"Λάθος"&lt;/span&gt;, MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                    &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;catch&lt;/span&gt; (MySqlException ex)
                    {
                        MessageBox.Show(ex.ToString());
                    }
                    &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;finally&lt;/span&gt;
                    {
                        &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;this&lt;/span&gt;.CloseConnection();
                    }
                }
                &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;else&lt;/span&gt;
                {
                    MessageBox.Show(&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"Δεν υπάρχει σύνδεση!!!"&lt;/span&gt;);
                }
            }
        }&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Ψάχνω μονο για νούμερα &lt;/p&gt;&lt;p&gt;οταν φτάσει στο επιθυμητό μήκος το string (Γραμμή 27)&lt;/p&gt;&lt;p&gt;βλέπω σε πόσο χρόνο πληκτρολογήθηκε (Γραμμή 30)&lt;/p&gt;&lt;p&gt;Ψάχνω να βρω αν υπάρχει ο&amp;nbsp;μάθητής στην βάση&amp;nbsp;(Γραμμή 36)&lt;/p&gt;&lt;p&gt;Αν ο χρόνος που χρειάστηκε να πληκτρολογηθεί το νούμερο είναι λιγότερο απο 100ms πάει να πει ότι το διάβασε το barcode scanner (Γραμμή 38)&lt;/p&gt;&lt;p&gt;Αποθηκεύω τα δεδομένα (Γραμμή 40)&lt;/p&gt;&lt;p&gt;Εμφανίζω στην φόρμα μου τις πληροφορίες (Γραμμή 42)&lt;/p&gt;&lt;p&gt;Βάζω στο κέντρο της οθόνης την αφαρμογή μου (Γραμμή 48)&lt;/p&gt;&lt;p&gt;Την φέρνω μπροστά απο κάθε άλλο ανοιχτό παράθυρο στα windows (Γραμμή 49)&lt;/p&gt;&lt;p&gt;Κάνω ένα beep (Γραμμή 50)&lt;/p&gt;&lt;p&gt;Μηδενίζω το string μου (Γραμμή 53)&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Οι υπόλοιπες functions:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;pre&gt;&lt;span style="color:black;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;        &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;private&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;void&lt;/span&gt; positioncontrols()
        {
            Rectangle rect &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; Screen.PrimaryScreen.WorkingArea;
            &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;//Divide the screen in half, and find the center of the form to center it&lt;/span&gt;
            &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;this&lt;/span&gt;.Top &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; (rect.Height &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;/&lt;/span&gt; 2) &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;-&lt;/span&gt; (&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;this&lt;/span&gt;.Height &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;/&lt;/span&gt; 2);
            &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;this&lt;/span&gt;.Left &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; (rect.Width &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;/&lt;/span&gt; 2) &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;-&lt;/span&gt; (&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;this&lt;/span&gt;.Width &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;/&lt;/span&gt; 2);
        }

        &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;private&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;bool&lt;/span&gt; chkNumber(&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;string&lt;/span&gt; chk)
        {
            &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;double&lt;/span&gt; number;
            CultureInfo culture &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; CultureInfo.CreateSpecificCulture(&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"el-GR"&lt;/span&gt;);
            NumberStyles style &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; NumberStyles.Number;

            &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;if&lt;/span&gt; (Double.TryParse(chk, style, culture, &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;out&lt;/span&gt; number))
                &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;return&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;true&lt;/span&gt;;
            &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;else&lt;/span&gt;
                &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;return&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;false&lt;/span&gt;;
        }

        &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;private&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;bool&lt;/span&gt; loadtrdrObj(&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;string&lt;/span&gt; barcode)
        {
           &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;bool&lt;/span&gt; found &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;false&lt;/span&gt;;
           &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;string&lt;/span&gt; SQLtrdr &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; &lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"select t.company, t.trdr, t.name, ifnull(t.epipedo, 0)level, "&lt;/span&gt; &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;+&lt;/span&gt;
                &lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"(select date from trans where trdr = t.trdr and type=2 order by date desc limit 1) trndate, "&lt;/span&gt; &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;+&lt;/span&gt;
                &lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"ifnull(t.remarks,'') remarks "&lt;/span&gt;&lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;+&lt;/span&gt;
                &lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"from trdr t "&lt;/span&gt; &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;+&lt;/span&gt;
                &lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"where t.barcode = @barcode"&lt;/span&gt;;

            MySqlCommand cmd &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;new&lt;/span&gt; MySqlCommand(SQLtrdr, connection);
            cmd.Parameters.AddWithValue(&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"@barcode"&lt;/span&gt;, barcode);

            DataTable dt &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;new&lt;/span&gt; DataTable();

            MySqlDataReader dataReader &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; cmd.ExecuteReader();
            dt.Load(dataReader);
            &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;if&lt;/span&gt; (dt.Rows.Count &amp;gt; 0)
            {
                Customer myCust &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;new&lt;/span&gt; Customer
                    (
                    Convert.ToInt16(dt.Rows[0][&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"company"&lt;/span&gt;]),
                    Convert.ToInt32(dt.Rows[0][&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"trdr"&lt;/span&gt;]),
                    dt.Rows[0][&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"name"&lt;/span&gt;].ToString(),
                    Convert.ToInt16(dt.Rows[0][&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"level"&lt;/span&gt;]),
                    Convert.ToDateTime(dt.Rows[0][&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"trndate"&lt;/span&gt;]),
                    dt.Rows[0][&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"remarks"&lt;/span&gt;].ToString()
                    );
                myCustomer &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; myCust;
                found &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;true&lt;/span&gt;;
            }
            &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;else&lt;/span&gt;
            {
                found &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;false&lt;/span&gt;;
            }
            &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;//close Data Reader&lt;/span&gt;
            dataReader.Close();
            dt.Dispose();
            &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;return&lt;/span&gt; found;
        }

        &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;private&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;int&lt;/span&gt; SaveData()
        {
            &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;string&lt;/span&gt; SQLtrdr &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; &lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;""&lt;/span&gt;;
            &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;int&lt;/span&gt; r &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; 0;
            SQLtrdr &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; &lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"insert into trans(company, date, trdr, type, insdate, upddate) values (@company, @date, @trdr, @type, @insdate, @upddate)"&lt;/span&gt;;
            MySqlCommand myCommand &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;new&lt;/span&gt; MySqlCommand();

            myCommand.Parameters.AddWithValue(&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"@company"&lt;/span&gt;, myCustomer.Company);
            myCommand.Parameters.AddWithValue(&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"@date"&lt;/span&gt;, DateTime.Now);
            myCommand.Parameters.AddWithValue(&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"@trdr"&lt;/span&gt;, myCustomer.Trdr);
            myCommand.Parameters.AddWithValue(&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"@type"&lt;/span&gt;, 999);
            myCommand.Parameters.AddWithValue(&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"@insdate"&lt;/span&gt;, DateTime.Now);
            myCommand.Parameters.AddWithValue(&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"@upddate"&lt;/span&gt;, DateTime.Now);

            myCommand.CommandText &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; SQLtrdr;
            myCommand.Connection &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; connection;
            r &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; myCommand.ExecuteNonQuery();

            &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;if&lt;/span&gt; (r &amp;gt; 0)
            {
                &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;return&lt;/span&gt; 1;
            }
            &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;else&lt;/span&gt;
            {
                &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;return&lt;/span&gt; 0;
            }
        }


        &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;public&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;void&lt;/span&gt; onePing()
        {
            SystemSounds.Asterisk.Play();
        }&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Και επειδή με ευρος 0-100 έχω 0 στον προγραμματισμό, αν μπορείτε να με διορθώσετε όπου μπορεί να κάνω λάθος ή διορθώσεις ... &lt;/p&gt;&lt;p&gt;Ευχαριστώ και συγνώμη&lt;/p&gt;</description></item><item><title>Απ: barcode scanner - reader</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/71798.aspx</link><pubDate>Fri, 21 Dec 2012 07:06:24 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:71798</guid><dc:creator>evagelos</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/71798.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=71798</wfw:commentRss><description>&lt;p&gt;όπως είπα και στην αρχή θα πρέπει να παίξω μέσα απο τοι υπάρχον πρόγραμμα που έχω φτιάξει.&lt;/p&gt;&lt;p&gt;Αυτό είναι σε .net 3.5&lt;/p&gt;&lt;p&gt;Οσον αφορά το ποστ που έδωσες πιο πάνω ομολογώ δεν καταλαβα τι πρέπει να κάνω για&amp;nbsp;να το ενσωματώσω στο "δικό" μου.&lt;/p&gt;&lt;p&gt;Εκτος και αν φτιάξω μια άλλη εφαρμογή που θα ανοίγει ξεχωριστά και θα κάνει hook. Οταν βρει αυτό που πρέπει να βρει, θα συνδέεται στην mysql για να κάνει το insert στους πίνακες που θέλω&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;pre&gt;&lt;span style="color:black;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;using&lt;/span&gt; System;
&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;using&lt;/span&gt; System.Diagnostics;
&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;using&lt;/span&gt; System.Windows.Forms;
&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;using&lt;/span&gt; System.Runtime.InteropServices;

&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;class&lt;/span&gt; InterceptKeys
{
    &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;private&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;const&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;int&lt;/span&gt; WH_KEYBOARD_LL &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; 13;
    &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;private&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;const&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;int&lt;/span&gt; WM_KEYDOWN &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; 0x0100;
    &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;private&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;static&lt;/span&gt; LowLevelKeyboardProc _proc &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; HookCallback;
    &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;private&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;static&lt;/span&gt; IntPtr _hookID &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; IntPtr.Zero;

    &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;public&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;static&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;void&lt;/span&gt; Main()
    {
        _hookID &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; SetHook(_proc);
        Application.Run();
        UnhookWindowsHookEx(_hookID);
    }

    &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;private&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;static&lt;/span&gt; IntPtr SetHook(LowLevelKeyboardProc proc)
    {
        &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;using&lt;/span&gt; (Process curProcess &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; Process.GetCurrentProcess())
        &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;using&lt;/span&gt; (ProcessModule curModule &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; curProcess.MainModule)
        {
            &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;return&lt;/span&gt; SetWindowsHookEx(WH_KEYBOARD_LL, proc,
                GetModuleHandle(curModule.ModuleName), 0);
        }
    }

    &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;private&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;delegate&lt;/span&gt; IntPtr LowLevelKeyboardProc(
        &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;int&lt;/span&gt; nCode, IntPtr wParam, IntPtr lParam);

    &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;private&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;static&lt;/span&gt; IntPtr HookCallback(
        &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;int&lt;/span&gt; nCode, IntPtr wParam, IntPtr lParam)
    {
        &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;if&lt;/span&gt; (nCode &amp;gt;= 0 &amp;amp;&amp;amp; wParam == (IntPtr)WM_KEYDOWN)
        {
            &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;int&lt;/span&gt; vkCode &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; Marshal.ReadInt32(lParam);
            Console.WriteLine((Keys)vkCode);
        }
        &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;return&lt;/span&gt; CallNextHookEx(_hookID, nCode, wParam, lParam);
    }

    [DllImport(&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"user32.dll"&lt;/span&gt;, CharSet &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; CharSet.Auto, SetLastError &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;true&lt;/span&gt;)]
    &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;private&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;static&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;extern&lt;/span&gt; IntPtr SetWindowsHookEx(&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;int&lt;/span&gt; idHook,
        LowLevelKeyboardProc lpfn, IntPtr hMod, &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;uint&lt;/span&gt; dwThreadId);

    [DllImport(&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"user32.dll"&lt;/span&gt;, CharSet &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; CharSet.Auto, SetLastError &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;true&lt;/span&gt;)]
    [&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;return&lt;/span&gt;: MarshalAs(UnmanagedType.Bool)]
    &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;private&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;static&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;extern&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;bool&lt;/span&gt; UnhookWindowsHookEx(IntPtr hhk);

    [DllImport(&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"user32.dll"&lt;/span&gt;, CharSet &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; CharSet.Auto, SetLastError &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;true&lt;/span&gt;)]
    &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;private&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;static&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;extern&lt;/span&gt; IntPtr CallNextHookEx(IntPtr hhk, &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;int&lt;/span&gt; nCode,
        IntPtr wParam, IntPtr lParam);

    [DllImport(&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"kernel32.dll"&lt;/span&gt;, CharSet &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; CharSet.Auto, SetLastError &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;true&lt;/span&gt;)]
    &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;private&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;static&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;extern&lt;/span&gt; IntPtr GetModuleHandle(&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;string&lt;/span&gt; lpModuleName);
}&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Απ: barcode scanner - reader</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/71797.aspx</link><pubDate>Thu, 20 Dec 2012 19:26:09 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:71797</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/71797.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=71797</wfw:commentRss><description>Υ.Υ.Γ Και γιατί όχι και σε Silverlight ... Το Silverlight 5 υποστηρίζει P/Invoke, ενώ με το Microsoft.Bcl.Async package μπορείς να προσθέσεις υποστήριξη για async/await σε .NET 4 και Silverlight 4</description></item><item><title>Απ: barcode scanner - reader</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/71796.aspx</link><pubDate>Thu, 20 Dec 2012 19:20:44 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:71796</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/71796.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=71796</wfw:commentRss><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;img src="http://dotnetzone.gr/cs/Themes/default/images/icon-quote.gif"&gt; &lt;strong&gt;Libra Storm:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;p style="font-family:Tahoma, Arial, Helvetica;"&gt;Ναι μπορείς, με timespan struct ή με την system.enviroment.tickCount property και "κράτα" την διαφορά χρόνου μεταξύ 2 διαδοχικών keydown events,&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Υπάρχει ήδη το &lt;a href="http://msdn.microsoft.com/en-us/library/system.diagnostics.stopwatch.aspx"&gt;System.Diagnostics.Stopwatch&lt;/a&gt; το οποίο κάνει αυτό ακριβώς.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Επαυξάνω για τα υπόλοιπα, έτσι κι αλλιώς πρέπει να ρυθμίσεις το scanner να σου στείλει κάποιους χαρακτήρες στην αρχή για να καταλάβεις ότι πρόκειται για το scanner και όχι για το χρήστη.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Όσον αφορά τους φτηνούς scanners, έριξα μία γρήγορη ματιά σε αυτούς του 40άρικου και βλέπω ότι παίζουν απλά σαν πληκτρολόγια.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Πλατειάζοντας λίγο, βρήκα αυτό το&lt;a href="http://blogs.msdn.com/b/toub/archive/2006/05/03/589423.aspx"&gt; blog post&lt;/a&gt; του Stephen Toub (γνωστότατος για το Task Parallel Library, Async programming) για Keyboard Hooks το οποίο συνοδεύει το άρθρο του για debugging με το Visual Studio στο MSDN Magazine του Μαΐου 2006. Βρήκα και άλλες υλοποιήσεις που "τυλίγουν" αυτό τον κώδικα σε μία κλάση που σηκώνει events και αναρωτιέμαι, γιατί events που είναι η "παλιά μόδα" και όχι Tasks που είναι ο σύγχρονος τρόπος προγραμματισμού? Αν ο καθηγητής δεν έχει επιβάλλει τη χρήση .NET 3.5-, άνετα μπορείς να γράψεις το hook με Tasks ή (σε .ΝΕΤ 4.5/4 με προϋποθέσεις) με async/await. Έτσι δεν θα κολλάει το UI όσο η εφαρμογή διαβάζει/επεξεργάζεται τα keystrokes, ούτε θα υπάρχει κίνδυνος να χαθούν keyboard events επειδή το UI thread έτρεχε κάτι άλλο.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Η συμπεριφορά της εφαρμογής θα είναι απείρως καλύτερη και θα εντυπωσιάσει και τον καθηγητή &lt;img src="http://dotnetzone.gr/cs/emoticons/emotion-4.gif" alt="Stick out tongue" /&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Υ.Γ. Αυτό εξελίσσεται σε πολύ ενδιαφέρον thread ...&lt;/div&gt;</description></item><item><title>Απ: barcode scanner - reader</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/71793.aspx</link><pubDate>Thu, 20 Dec 2012 07:46:16 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:71793</guid><dc:creator>Libra Storm</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/71793.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=71793</wfw:commentRss><description>&lt;p style="font-family:Tahoma, Arial, Helvetica;"&gt;&lt;i&gt;"Μπορώ να βάλω κάποιο έλεγχο για την διαρκεια πουθ πάτησε τα 2 νούμερα;"&lt;/i&gt;&lt;/p&gt;&lt;p style="font-family:Tahoma, Arial, Helvetica;"&gt;&lt;i&gt;"πχ αν πάτησε 2 νούμερα ε διάστημα 1 δευτερολέπτου το ένα απο το άλλο, είναι σίγουρο ότι δεν το έστειλε το barcode, αλλα τα πάτησε ο χρήστης"&lt;/i&gt;&lt;/p&gt;&lt;p style="font-family:Tahoma, Arial, Helvetica;"&gt;&lt;p&gt;Ναι μπορείς, με timespan struct ή με την system.enviroment.tickCount property και "κράτα" την διαφορά χρόνου μεταξύ 2 διαδοχικών keydown events, αλλά&amp;nbsp;&lt;br&gt;αν γιά παράδειγμα ο Χρήστης πχ γράψει πολύ γρήγορα ή απλά πατήσει το ίδιο πλήκτρο συνέχεια θα νομίζει το πρόγραμμα ότι έστειλε event ο Scanner.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;p style="font-family:Tahoma, Verdana, Arial, Helvetica, sans-serif;"&gt;Θα σου πρότεινα Όταν φτιάξεις τα barcode πρόσθεσε στην αρχή κάποιο αναγνωριστικό ή αν ο scanner έχει ρυθμίσεις , ένα νούμερο ή κάποιους&amp;nbsp;ASCII&amp;nbsp;characters και μετά εφόσον ο σκάνερ στείλει Carriage Return ή οτιδήποτε άλλο έχει ρυθμιστεί να στέλνει τότε κάνε parse&amp;nbsp;το string.&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;p&gt;Φτιάξε τα λοιπόν τα Barcodes σου, βάλε το αναγνωριστικό σου σε αυτά σε συνδυασμό με το ID του Μαθητή και αν γίνει το parse valid γράψε το στην βάση.&lt;/p&gt;</description></item><item><title>Απ: barcode scanner - reader</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/71791.aspx</link><pubDate>Wed, 19 Dec 2012 19:51:19 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:71791</guid><dc:creator>evagelos</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/71791.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=71791</wfw:commentRss><description>&lt;p&gt;δεν έχω ακόμα.&lt;/p&gt;&lt;p&gt;Σκέφτομουν κάτι απο εδώ : http://www.ics.gr/index.php?target=categories&amp;amp;category_id=50 &lt;/p&gt;&lt;p&gt;αλλά θέλω να είμαι σίγουρος πριν πάρω κάτι. Οσον αφορά το&amp;nbsp;SetWindowsHookEx &lt;/p&gt;&lt;p&gt;Μέχρι στιγμής έχω φτάσει εδώ:&lt;/p&gt;&lt;pre&gt;&lt;span style="color:black;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;		UserActivityHook actHook;
		&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;void&lt;/span&gt; MainFormLoad(&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;object&lt;/span&gt; sender, System.EventArgs e)
		{
            actHook &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;new&lt;/span&gt; UserActivityHook(); &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;// crate an instance with global hooks&lt;/span&gt;
			&lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;// hang on events&lt;/span&gt;
			&lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;//actHook.OnMouseActivity+=new MouseEventHandler(MouseMoved);&lt;/span&gt;
			actHook.KeyDown+=&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;new&lt;/span&gt; KeyEventHandler(MyKeyDown);
			&lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;//actHook.KeyPress+=new KeyPressEventHandler(MyKeyPress);&lt;/span&gt;
			&lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;//actHook.KeyUp+=new KeyEventHandler(MyKeyUp);&lt;/span&gt;
		}
		

		
		&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;public&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;void&lt;/span&gt; MyKeyDown(&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;object&lt;/span&gt; sender, KeyEventArgs e)
		{
			&lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;//LogWrite("KeyDown 	- " + e.KeyData.ToString());&lt;/span&gt;
            
            &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;string&lt;/span&gt; value &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; &lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;""&lt;/span&gt;;
            &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;if&lt;/span&gt; (e.KeyValue &amp;gt;= ((&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;int&lt;/span&gt;)Keys.NumPad0) &amp;amp;&amp;amp; e.KeyValue &amp;lt;= ((&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;int&lt;/span&gt;)Keys.NumPad9))
            { &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;// numpad&lt;/span&gt;
                value &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; Convert.ToInt16(e.KeyValue &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;-&lt;/span&gt; ((&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;int&lt;/span&gt;)Keys.NumPad0)).ToString();
            }
            &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;else&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;if&lt;/span&gt; (e.KeyValue &amp;gt;= ((&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;int&lt;/span&gt;)Keys.D0) &amp;amp;&amp;amp; e.KeyValue &amp;lt;= ((&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;int&lt;/span&gt;)Keys.D9))
            { &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;// regular numbers&lt;/span&gt;
                value &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt;  Convert.ToInt16(e.KeyValue &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;-&lt;/span&gt; ((&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;int&lt;/span&gt;)Keys.D0)).ToString();
            }


            &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;if&lt;/span&gt; (chkNumber(value) == &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;true&lt;/span&gt;)
                myval &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; myval &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;+&lt;/span&gt; value;
            &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;else&lt;/span&gt;
                myval &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; &lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;""&lt;/span&gt;;

            &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;if&lt;/span&gt; (myval.Length == 13)
            {
                textBox1.Text &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; myval;
                myval &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; &lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;""&lt;/span&gt;;
            }
		}

        &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;private&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;bool&lt;/span&gt; chkNumber(&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;string&lt;/span&gt; chk)
        {

            &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;double&lt;/span&gt; number;
            CultureInfo culture &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; CultureInfo.CreateSpecificCulture(&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"el-GR"&lt;/span&gt;);
            NumberStyles style &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; NumberStyles.Number;
            &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;if&lt;/span&gt; (Double.TryParse(chk, style, culture, &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;out&lt;/span&gt; number))
                &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;return&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;true&lt;/span&gt;;
            &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;else&lt;/span&gt;
                &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;return&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;false&lt;/span&gt;;
        }&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Κάνω έλεγχο αν πατησε ο χρήστης ένα χαρακτήρα και αν πάτησε "μηδενίζω" το string μου.&lt;/p&gt;&lt;p&gt;Μπορώ να βάλω κάποιο έλεγχο για την διαρκεια πουθ πάτησε τα 2 νούμερα;&lt;/p&gt;&lt;p&gt;πχ αν πάτησε  2 νούμερα ε διάστημα 1 δευτερολέπτου το ένα απο το άλλο, είναι σίγουρο ότι δεν το έστειλε το barcode, αλλα τα πάτησε ο χρήστης&lt;/p&gt;</description></item><item><title>Απ: barcode scanner - reader</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/71784.aspx</link><pubDate>Tue, 18 Dec 2012 22:36:28 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:71784</guid><dc:creator>Libra Storm</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/71784.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=71784</wfw:commentRss><description>Ναι, δυστυχώς δεν γνωρίζω αν υπάρχει πιό πρόσφατη έκδοση. Αν δεν υποστηρίζει UPOS δεν θα παίζει θα είναι "Κινέζικος"&lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-1.gif" alt="Smile" /&gt;.&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Δεν μας είπε τελικά ο Evagelos τι scanner έχει.&lt;/div&gt;</description></item><item><title>Απ: barcode scanner - reader</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/71783.aspx</link><pubDate>Tue, 18 Dec 2012 22:24:14 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:71783</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/71783.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=71783</wfw:commentRss><description>Γι &lt;a href="http://msdn.microsoft.com/en-US/library/bb429024(v=winembedded.11).aspx"&gt;αυτό&lt;/a&gt; μιλάς? Ή υπάρχει κάτι πιο πρόσφατο? Θα πρέπει πάντως ο scanner να υποστηρίζει το UPOS για να χρησιμοποιηθεί από το POS for .NET&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Χμμμ, καιρός να δούμε τις εξελίξεις στα φτηνά barcode scanners ...&lt;/div&gt;</description></item><item><title>Απ: barcode scanner - reader</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/71781.aspx</link><pubDate>Tue, 18 Dec 2012 22:10:19 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:71781</guid><dc:creator>Libra Storm</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/71781.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=71781</wfw:commentRss><description>Γιά να "πιάνεις" keystrokes ανεξάρτητα από το αν η εφαρμογή έχει focus ή όχι μπορείς να χρησιμοποιήσεις την SetWindowsHookEx function. Αυτό σε περίπτωση που ο Scanner στέλνει keys.&amp;nbsp;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Αν ο Scanner αναγνωρίζεται ως &amp;nbsp;Device από το λειτουργικό μπορείς να χρησιμοποιήσεις την Βιβλιοθήκη Microsoft POS for .NET. Αυτή αναγνωρίζει τα POS Devices του συστήματος και σηκώνει το DataEvent σε περίπτωση που σκανάρεις κάτι.&lt;/div&gt;</description></item></channel></rss>