Η παραπάνω απάντηση ισχύει - το .NET και ο SQL Server δεν έχουν πρόβλημα με τα ελληνικά γιατί χρησιμοποιούν Unicode, εκτός και αν επιβάλεις τη μετατροπή σε ASCII. Μία τέτοια περίπτωση είναι να χρησιμοποιήσεις αντί για nvarchar (Unicode) πεδία στη βάση, varchar (ASCII) με μή ελληνικό collation. Ή αν αποθηκεύσεις σε αρχείο με καρφωτό ASCII codepage αντί για το default, UTF8.
Η λύση είναι να αλλάξεις τα πεδία της βάσης σε nvarchar.
Άλλη περίπτωση είναι να φτιάξεις ένα SQL string με string concatenation και να περάσεις τα ελληνικά ως ASCII (SomeField ='ΕλληνικάΑλλάAscii') αντί για Unicode, με το πρόθεμα Ν (= N'ΕλληνικάΣωστά'). Και αυτό όμως είναι κουκούλωμα - SQL strings αυτού του τύπου παρακαλάνε για SQL Injection. Φαντάσου κάποιος να δώσει επώνυμο `x'; drop table users;--`.
Σε αυτή την περίπτωση η πραγματική λύση είναι να χρησιμοποιήσεις parameterized queries και να περάσεις το κείμενο ως παράμετρο. Η πιθανότητα SQL injection ή conversion error εξαφανίζεται, και ο κώδικας θα είναι πιο καθαρός και πιο γρήγορος.
ΥΓ Βάσεις όπως η MySQL είναι λίγο "γιαλατζί" στο θέμα του Unicode. Αντί για nvarchar πρέπει να ορίσεις ότι το πεδίο είναι varchar με codepage UTF8. Μπορείς να αποφύγεις πάρα πολλά προβλήματα, και να έχεις και πιο γρήγορη βάση, βάζοντας ακόμα και την (τσάμπα) Express έκδοση του SQL Server 2016
ΥΓ2 Για συγκεκριμένη απάντηση θα πρέπει να μας πεις τί βάση χρησιμοποιείς, ποιός είναι ο τύπος των πεδίων στη βάση και να προσθέσεις τον κώδικα που γράφει τα δεδομένα στη βάση.
Παναγιώτης Καναβός, Freelancer
Twitter: http://www.twitter.com/pkanavos