Get countries from system

   1: using System;
   2: using System.Collections.Generic;
   3: using System.Linq;
   4: using System.Text;
   5: using System.Globalization;
   6: using System.IO;
   7:  
   8: namespace CultureInformation
   9: {
  10:     class Program
  11:     {
  12:         static void Main(string[] args)
  13:         {
  14:             StreamWriter sw = new StreamWriter(@"D:\PopulateTableData.Txt");
  15:             CultureInfo[] cultures = CultureInfo.GetCultures(CultureTypes.SpecificCultures);
  16:            
  17:             StringBuilder sb = new StringBuilder();
  18:  
  19:             sb.AppendLine(" declare @LocalizableId bigint, @CultureId bigint,@CurrencyId bigint ");
  20:  
  21:             //insert Culture
  22:             foreach (CultureInfo item in cultures)
  23:             {
  24:                 sb.AppendLine(string.Format("INSERT INTO [LocalizableText] ([CultureInvariantText]) VALUES('{0}') ", item.EnglishName.Replace("'", "''")));
  25:                 sb.AppendLine(" set @LocalizableId=IDENT_CURRENT('LocalizableText') ");
  26:                 sb.AppendLine(string.Format("INSERT INTO [Culture]([Code],[Name]) VALUES('{0}',@LocalizableId)", item.Name));
  27:             }
  28:  
  29:             //insert currency
  30:             List<string> currencyList = new List<string>();
  31:             foreach (CultureInfo item in cultures)
  32:             {
  33:                 RegionInfo r = new RegionInfo(item.LCID);
  34:  
  35:                 if (!currencyList.Contains(r.ISOCurrencySymbol))
  36:                 {
  37:                     currencyList.Add(r.ISOCurrencySymbol);
  38:                     sb.AppendLine(string.Format("INSERT INTO [LocalizableText] ([CultureInvariantText]) VALUES ('{0}')", r.CurrencyEnglishName.Replace("'", "''")));
  39:                     sb.AppendLine(" set @LocalizableId=IDENT_CURRENT('LocalizableText') ");
  40:                     sb.AppendLine(string.Format("INSERT INTO Currency ([IsoCode],[Name]) VALUES ('{0}',@LocalizableId)", r.ISOCurrencySymbol));
  41:                 }
  42:             }
  43:  
  44:             // insert country
  45:             List<string> cultureList = new List<string>();
  46:             foreach (CultureInfo item in cultures)
  47:             {
  48:                 RegionInfo r = new RegionInfo(item.LCID);
  49:                 if (!(cultureList.Contains(r.ThreeLetterISORegionName)))
  50:                 {
  51:                     cultureList.Add(r.ThreeLetterISORegionName);
  52:                     if (r.TwoLetterISORegionName.Length > 2) continue;
  53:                     sb.AppendLine(string.Format("INSERT INTO [LocalizableText] ([CultureInvariantText]) VALUES ('{0}')", r.EnglishName.Replace("'", "''")));
  54:                     sb.AppendLine(" set @LocalizableId=IDENT_CURRENT('LocalizableText') ");
  55:                     sb.AppendLine(string.Format(" select @CultureId=[CultureId] from [Culture] where [Code]='{0}'", item.Name));
  56:                     sb.AppendLine(string.Format("  select @CurrencyId=[CurrencyId] from [Currency] where [IsoCode]='{0}'", r.ISOCurrencySymbol));
  57:                     sb.AppendLine(string.Format("INSERT INTO Country([IsoCode3],[IsoCode2],[CurrencyId],[CultureId],[Name]) VALUES('{0}','{1}',@CurrencyId,@CultureId,@LocalizableId)",
  58:                                 r.ThreeLetterISORegionName, r.TwoLetterISORegionName));
  59:                 }
  60:  
  61:             }
  62:  
  63:  
  64:             sw.WriteLine(sb.ToString());
  65:  
  66:             sw.Flush();
  67:             sw.Close();
  68:             Console.ReadLine();
  69:         }
  70:  
  71:  
  72:         public static List<string> GetCountryList()
  73:         {
  74:  
  75:             //create a new Generic list to hold the country names returned
  76:             List<string> cultureList = new List<string>();
  77:             //create an array of CultureInfo to hold all the cultures found, these include the users local cluture, and all the
  78:  
  79:             //cultures installed with the .Net Framework
  80:             CultureInfo[] cultures = CultureInfo.GetCultures(CultureTypes.AllCultures & ~CultureTypes.NeutralCultures);
  81:  
  82:             //loop through all the cultures found
  83:             foreach (CultureInfo culture in cultures)
  84:             {
  85:                 //pass the current culture's Locale ID (http://msdn.microsoft.com/en-us/library/0h88fahh.aspx)
  86:                 //to the RegionInfo contructor to gain access to the information for that culture
  87:                 RegionInfo region = new RegionInfo(culture.LCID);
  88:                 //make sure out generic list doesnt already
  89:                 //contain this country
  90:                 if (!(cultureList.Contains(region.EnglishName)))
  91:  
  92:                     //not there so add the EnglishName (http://msdn.microsoft.com/en-us/library/system.globalization.regioninfo.englishname.aspx)
  93:  
  94:                     //value to our generic list
  95:                     cultureList.Add(region.EnglishName);
  96:             }
  97:             return cultureList;
  98:  
  99:         }
 100:     }
 101: }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值