Πώς να χρησιμοποιήσετε ίδια βάση δεδομένων και ίδιο πρόγραμμα για δύο διαφορετικές περιοχές στην ΝΕΤ

ψήφοι
3

Έχω ένα C # πρόγραμμα το οποίο χρησιμοποιεί ένα SQL Server database.I είμαι ήδη χρησιμοποιούν σε μια χώρα που χρησιμοποιεί. σαν υποδιαστολή. Τώρα θέλω να το χρησιμοποιήσετε σε μια άλλη χώρα που χρησιμοποιεί, σαν υποδιαστολή.

σε C # είναι κάποια εφαρμογή η ρύθμιση επίπεδο που μπορώ να αλλάξω ή να γράψετε κάποιο κώδικα, έτσι ώστε να μπορώ να χρησιμοποιήσω την ίδια βάση δεδομένων και το ίδιο πρόγραμμα; ή μήπως πρέπει να αλλάξω ολόκληρο το κωδικό μου για να χειριστεί αυτό το νέο υποδιαστολή;

Δεν ξέρω πώς αυτό works.Basically νομίζω ότι θα υπάρξουν προβλήματα στο My Sql ερωτήματα. παράδειγμα να πω ένα από τα υπάρχοντα δηλώσεις μου είναι

insert into tblproducts(productId,Price) values('A12',24.10)

τώρα στη νέα χώρα θα γίνει

insert into tblproducts(productId,Price) values('A12',24,10)

Αυτό θα αυξήσει σφάλμα

έτσι μπορώ να αλλάξει όλη κώδικα για να χειριστεί αυτή την κατάσταση;

Ευχαριστώ

Δημοσιεύθηκε 09/12/2008 στις 18:17
πηγή χρήστη
Σε άλλες γλώσσες...                            


3 απαντήσεις

ψήφοι
1

Αν κατασκευαστεί το ερώτημα χρησιμοποιώντας συνένωση string, χρησιμοποιήστε παραμέτρους αντ 'αυτού. Έτσι, αντί της γραφής:

 var query = "insert into tblproducts(productId,Price) values('" + article + "','"
    + price + ')';

χρησιμοποιούν OleDbParameters :

 var query = "insert into tblproducts(productId,Price) values(?,?)"
 var cmd = new OleDbCommand(query, connection);
 cmd.Parameters.Add("@article", OleDbType.VarChar).Value = article;
 cmd.Parameters.Add("@price", OleDbType.Single).Value = price;

Αυτό θα σας εξοικονομήσει πολλά προβλήματα, συμπεριλαμβανομένων των θεμάτων εντοπισμού.

Απαντήθηκε 09/12/2008 στις 18:46
πηγή χρήστη

ψήφοι
0

Στο αρχείο global.asax.vb σας, μπορείτε να ρυθμίσετε τον πολιτισμό της τρέχουσας φόρτωση της σελίδας:

Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture("en-US")
Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture

Αυτό θα κάνει τη πολιτισμό γνωρίζουν το έργο λειτουργικότητα όμορφα. π.χ., (5.000,25) .ToString () θα χρησιμοποιήσει κόμματα εναντίον περιόδους, ανάλογα με ό, τι τον πολιτισμό που έχετε ορίσει. Επίσης, διαβάζοντας ένα εισροές από τον χρήστη σε ένα αριθμητικό τύπο θα αναλυθούν σύμφωνα με τους κανόνες του πολιτισμού τους. Ημερομηνίες θα εμφανίζονται σωστά (12/09/08 έναντι 9.12.08). Μπορείτε να πάρετε όλα αυτά ουσιαστικά δωρεάν.

Αυτό προφανώς δημιουργεί προβλήματα όταν μιλάμε για άλλα συστήματα που περιμένουν τα πάντα με τον ίδιο πολιτισμό. Για να λυθεί αυτό, μπορείτε να γράψετε τις ερωτήσεις σας με το αναλλοίωτο τον πολιτισμό:

(5000.25).ToString(CultureInfo.InvariantCulture) 

Αυτό θα καθορίσει ρητά ότι η παραγωγή σε κάτι που Mysql μπορεί να πάρει μαζί με.

Σημείωση: αν έχετε μια σωστή επιπέδου δεδομένων και περνάτε αριθμητικούς τύπους σε αυτό, μπορείτε να αποφύγετε πιθανόν πολλά από αυτό το χάος.

Απαντήθηκε 09/12/2008 στις 18:46
πηγή χρήστη

ψήφοι
0

μπορείτε να κάνετε μερικά πράγματα για να το διορθώσετε.

Κατ 'αρχάς, εάν παίρνετε τιμές από το περιβάλλον εργασίας, τότε θα είναι χύτευση αυτές τις τιμές σε δεκαδικό. Decimal.parse είναι μια λειτουργία που εξαρτάται από καλλιέργεια και θα χρησιμοποιήσει την τρέχουσα κουλτούρα να αναλύσει τιμές. Ως εκ τούτου, εάν η CurrentCulture χρησιμοποιεί κόμμα σαν υποδιαστολή διαχωριστικά στη συνέχεια ρίχνει σας θα λειτουργήσει σωστά. Στη συνέχεια, όταν εξόδου η τιμή από τη μεταβλητή σας, μπορείτε να καθορίσετε τη μορφή decimal.ToString για πάντα εξόδου χρησιμοποιώντας ένα χρονικό διάστημα ως διαχωριστικό.

Ω, ξέχασα να προσθέσω. Θα μπορούσατε επίσης να αλλάξετε την ανάλυση για να υποδείξει νομίσματος, το οποίο επιτρέπει κόμματα, καθώς και $ σημάδια. για παράδειγμα: decimal.parse (ποσό, NumberStyles.Currency)

Απαντήθηκε 09/12/2008 στις 18:44
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more