DatabaseResourceReader.cs
上传用户:lxycoco
上传日期:2022-07-21
资源大小:38457k
文件大小:1k
源码类别:

C#编程

开发平台:

Others

  1. using System;
  2. using System.Resources;
  3. using System.Globalization;
  4. using System.Collections;
  5. using System.Data.SqlClient;
  6. namespace Wrox.ProCSharp.Localization
  7. {
  8. public class DatabaseResourceReader : IResourceReader
  9. {
  10. private string dsn;
  11. private string language;
  12. public DatabaseResourceReader(string dsn, CultureInfo culture)
  13. {
  14. this.dsn = dsn;
  15. this.language = culture.Name;
  16. }
  17. public System.Collections.IDictionaryEnumerator GetEnumerator()
  18. {
  19. Hashtable dict = new Hashtable();
  20. SqlConnection connection = new SqlConnection(dsn);
  21. SqlCommand command = connection.CreateCommand();
  22. if (language == "")
  23. language = "Default";
  24. command.CommandText = "SELECT [key], [" + language + "] " + 
  25. "FROM Messages";
  26. try
  27. {
  28. connection.Open();
  29. SqlDataReader reader = command.ExecuteReader();
  30. while (reader.Read())
  31. {
  32. if (reader.GetValue(1) != System.DBNull.Value)
  33. dict.Add(reader.GetString(0), reader.GetString(1));
  34. }
  35. reader.Close();
  36. }
  37. catch // ignore missing columns in the database
  38. {
  39. }
  40. finally
  41. {
  42. connection.Close();
  43. }
  44. return dict.GetEnumerator();
  45. }
  46. public void Close()
  47. {
  48. }
  49. IEnumerator IEnumerable.GetEnumerator()
  50. {
  51. return this.GetEnumerator();
  52. }
  53. void IDisposable.Dispose()
  54. {
  55. }
  56. }
  57. }