<?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>Απ: Γαλλικά σε  sql data base</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/71465.aspx</link><pubDate>Wed, 24 Oct 2012 06:09:40 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:71465</guid><dc:creator>anthou</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/71465.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=71465</wfw:commentRss><description>Σε ευχαριστώ έκανα δοκιμή και δουλεύει&amp;nbsp;&lt;div&gt;Το ίδιο πιστεύω οτι ισχύει και για το update&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&amp;nbsp; Dim asd, ert As String&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; asd = "éèçê"&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ert = 2.34&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Dim sql As String = "update lexis_master set lexis=@lexis,metafrasi=@metafrasi " &amp;amp; _&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;"where ltajis_cod='111113' "&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Using connection = New SqlConnection(connectionString)&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Using cmd = New SqlCommand(sql, connection)&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; cmd.Parameters.AddWithValue("@lexis", asd)&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; cmd.Parameters.AddWithValue("@metafrasi", ert)&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; connection.Open()&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; cmd.ExecuteNonQuery()&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; End Using&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; End Using&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Ευχαριστώ&lt;/div&gt;</description></item><item><title>Απ: Γαλλικά σε  sql data base</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/71463.aspx</link><pubDate>Tue, 23 Oct 2012 20:10:09 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:71463</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/71463.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=71463</wfw:commentRss><description>&lt;div&gt;Το πρόβλημα είναι ο κώδικας, όχι η βάση ή η γλώσσα.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;Ο SQL Server δεν χρειάζεται κάτι ιδιαίτερο για να αποθηκεύσει ελληνικά, γαλλικά ή κυριλλικά - αν τα στείλεις ως unicode. Αυτό σημαίνει ότι τα πεδία που χρησιμοποιείς πρέπει να είναι nvarchar, το string που στέλνεις να είναι nvarchar και να το στέλνεις ως Unicode (p.x. Ν'το sting μου') αντί για ASCII string. Το collation δεν παίζει κανένα ρόλο αν χρησιμοποιείς Unicode. Αν όμως προσπαθήσεις να αποθηκεύσεις σε varchar (δηλαδή ASCII) πεδίο ή στείλεις τα string με μορφή ASCII, το collation θα χρησιμοποιηθεί ως το codepage του string. Προφανώς αν το collation είναι διαφορετικό από αυτό που νομίζεις, θα έχεις πρόβλημα.&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Στην περίπτωση σου το string concatenation που χρησιμοποιείς προκαλεί πολλά προβλήματα: ασφάλειας (λόγω sql injection), ταχύτητας (επειδή αναγκάζεις τον server να κάνει συνέχεια parse ένα query που μπορεί να έχει ξανασυναντήσει) και τέλος, στέλνεις τα sting ως ASCII. Επιπλέον, αν τα πεδία σου δεν είναι nvarchar, θα έχεις πρόβλημα.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Ο σωστός τρόπος είναι να φτιάξεις ένα parameterized query και να περάσεις έτσι τα string. Με τον τρόπο αυτό αποκλείεται η πιθανότητα sql injection, ο server θα ξαναχρησιμοποιήσει το ίδιο execution plan κάθε φορά ακόμα και αν αλλάξουν οι παράμετροι και δεν θα χρειαστεί να μαντέψει ούτε να κάνει καμμία μετατροποπή μεταξύ codepages:&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;pre&gt;&lt;span style="color:Black;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Dim&lt;/span&gt; sql &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;As&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;String&lt;/span&gt; &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"insert into lexis_master(ltajis_cod,Lklidi,lexis,profora,metafrasi,Lenergo,Lindex,epipedo) "&lt;/span&gt; &amp;amp;
                        &lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;" values(@ltajis_cod,@Lklidi,@lexis,@profora,@metafrasi,@Lenergo,@Lindex,@epipedo)"&lt;/span&gt;
        Using connection &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;New&lt;/span&gt; SqlConnection(&lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"some connenction string"&lt;/span&gt;)
            Using cmd &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;New&lt;/span&gt; SqlCommand(sql, connection)
                cmd.Parameters.AddWithValue(&lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"@ltajis_cod"&lt;/span&gt;, &lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"aaa"&lt;/span&gt;)
                cmd.Parameters.AddWithValue(&lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"@Lklidi"&lt;/span&gt;, &lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"bbb"&lt;/span&gt;)
                cmd.Parameters.AddWithValue(&lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"@lexis"&lt;/span&gt;, &lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"ccc"&lt;/span&gt;)
                cmd.Parameters.AddWithValue(&lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"@profora"&lt;/span&gt;, &lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"sdfsfs"&lt;/span&gt;)
                cmd.Parameters.AddWithValue(&lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"@metafrasi"&lt;/span&gt;, &lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"sdfs"&lt;/span&gt;)
                cmd.Parameters.AddWithValue(&lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"@Lenergo"&lt;/span&gt;, &lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"sdsds"&lt;/span&gt;)
                cmd.Parameters.AddWithValue(&lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"@Linde"&lt;/span&gt;, &lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"sdfsd"&lt;/span&gt;)
                cmd.Parameters.AddWithValue(&lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"@epipedo"&lt;/span&gt;, &lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"sdfsdfsd"&lt;/span&gt;)
&lt;br&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="color:Black;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre;"&gt;		&lt;/span&gt;connection.Open()
                cmd.ExecuteNonQuery()
            &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;End&lt;/span&gt; Using
        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;End&lt;/span&gt; Using&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Το καλό με τα parameters είναι ότι με τον ίδιο τρόπο μπορείς να περάσεις και αριθμούς και ημερομηνίες χωρίς να τα μετατρέψεις σε string, οπότε δεν έχεις πονοκεφάλους για το πως θα περάσει η υποδιαστολή ή πως γράφεται μία ημερομηνία στην Αμερική ή την Ελλάδα. Τέλος, δεν υπάρχει καμμία απολύτως ανάγκη να χρησιμοποιήσεις κάποιo SqlAdapter.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Εγκυκλοπαιδικά τέλος, για να εισάγεις ένα unicode string σε μία εντολή T-SQL πρέπει να βάλεις μπροστά από το string το γράμμα N. Θα πρέπει δηλαδή να γράψεις &lt;i&gt;... where somefield = Ν'τα ελληνικά μου'&lt;/i&gt; ή &lt;i&gt;Values (N'κι άλλο ελληνικό',N'...')&lt;/i&gt;. Αυτό πρέπει να το θυμάσαι όταν γράφεις π.χ. εντολές στο Management Studio. Στον κώδικα πρέπει πάντα να χρησιμοποιείς parameterized queries.&lt;/div&gt;&lt;/div&gt;</description></item><item><title>Γαλλικά σε  sql data base</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/71461.aspx</link><pubDate>Tue, 23 Oct 2012 04:57:11 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:71461</guid><dc:creator>anthou</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/71461.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=71461</wfw:commentRss><description>Στο site &amp;nbsp;μπορώ να κάνω update &amp;nbsp;και insert &amp;nbsp;στην βάσηγράφωντας &amp;nbsp;είτε με ελληνικά είτε αγγλικά &amp;nbsp;η γαλλικά χωρίς κανένα πρόβλημα&lt;div&gt;Οταν όμως κανω την σύνδεση και γράφω κώδικα στην VB 2010 για να κάνω&amp;nbsp;update &amp;nbsp;η &amp;nbsp;insert&amp;nbsp;στην βάση που βρίσκεται στον hosting&lt;/div&gt;&lt;div&gt;τότε έχω πρόβλημα όταν γράφω Γαλλικά καθώς στην βάση η εγγραφή γίνεται με αλλοίωση των χαρακτήρων&lt;/div&gt;&lt;div&gt;παράδειγμα&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;nlexi="éçàê"&lt;/div&gt;&lt;div&gt;&amp;nbsp; zxc = "insert into lexis_master(ltajis_cod,Lklidi,lexis,profora,metafrasi,Lenergo,Lindex,epipedo) " &amp;amp; _&lt;/div&gt;&lt;div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;"values('" &amp;amp; ncode &amp;amp; "','" &amp;amp; nklidi &amp;amp; "','" &amp;amp; nlexi &amp;amp; "','" &amp;amp; nprofora &amp;amp; "','" &amp;amp; nmetafrasi &amp;amp; "'," &amp;amp; _&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;"'" &amp;amp; nenergo &amp;amp; "','" &amp;amp; nindex &amp;amp; "','" &amp;amp; nepipedo &amp;amp; " ')"&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; connection.Open()&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sqladapter.InsertCommand = New SqlCommand(zxc, connection)&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sqladapter.InsertCommand.ExecuteNonQuery()&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; connection.Close()&lt;/div&gt;&lt;/div&gt;&lt;div&gt;Η καταχώρηση στην βάση δείχνει το πεδίο lexis="acae" &amp;nbsp;χωρίς τους τόνους&lt;/div&gt;&lt;div&gt;To ίδιο αποτέλεσμα έχω και όταν γράφω στην βάση του pc μου&lt;/div&gt;&lt;div&gt;Το collation στην βάση είναι greek_ci_as&lt;/div&gt;&lt;div&gt;δηλαδή ο μόνος τρόπος σωστής ενημέρωσης είναι μόνο απο το web&lt;/div&gt;&lt;div&gt;εχει σχέση με την VB η με τον sql ?&lt;/div&gt;&lt;div&gt;Μπορεί κάποιος να βοηθήσει στην λύση του προβλήματος&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;</description></item></channel></rss>