2010-12-03 22 views
3

は、私は値(3つだけここに示されている)の全体の束を持つ列挙型を持っている:列挙型:列挙型の名前ではなく、そのint型の値を文字列として取得する必要があります

public enum LookupType 
{ 
    Alignment, 
    Language, 
    ReEmbedBehavior 
} 

私はその後、LookupType呼ばvarchar型のフィールドに基づいてデータを取得する方法を持っている...私が欲しいのは発信者を制限することがありますデータベース内にある唯一のlookuptypesにこの方法で...ので、私のWHERE句の終わりに、私は、文字列ではなく、それの整数値として列挙名を欲しいです。

発信者が、その後GetLookupsByLookupType(LookupType.Language)と私の方法のような何かをするだろう「lookuptype = 『言語』」と電話をかけるだろう

public List<Lookup> GetLookupsByLookupType(UnicornMedia.Core.DomainModel.Enumerations.LookupType lookupType) 
     { 
      var lookups = new List<Lookup>(); 
      string SQL = String.Format(@"Select id, name, value, lookuptype 
             from lookups 
             where lookuptype = '{0}'", lookupType.ToString()); 

      ...<snip>...           
     } 

これはおそらく、単純なものだが、私はこれにぶつかるように見えます時々、それを理解する代わりに、私はちょうど辞書を使用して終了します...とにかく、そこにあります、ありがとう

+2

ToString()はあなたに名前を与えていませんか? – Benjol

+0

いいえ私はそれが起こったので、私はこれをチェックする前にデバッグまたはテストすることができませんので、私はそれを正しく取得する必要があることを確認する必要があります –

+1

あなたはそれをチェックする前にテストまたはデバッグ?それはまったく聞こえません.... –

答えて

2

あなたはEnum.GetNameを試しましたか?

実際には、次のスニペットは、単にToStringを呼び出すだけでも機能することを示しています。

enum LookupType { 
    Language 
} 
public class Program { 
    public static void Main(string[] args) { 
     string str = string.Format("{0}", LookupType.Language); 
     // str = "Language" 
     Console.WriteLine(LookupType.Language); 
     // output: Language 
    } 
} 
2

string name = System.Enum.GetName(typeof(LookupType), LookupType.Language); 
1

Enum.GetName(typeof(LookupType), lookupType); 
1

あなたは、あなたのコードでそれを持っているだけのように項目GetName ...

LookupType.Alignment.ToString(); 

または

を必要としません。 ..

lookupType.ToString() 
1

あなたのコードはうまくいくはずです。私は以下を実行し、文字列は期待される結果を返しました。

class Program 
{ 
    static void Main(string[] args) 
    { 
     LookupType lookupType = LookupType.Language; 

     Console.WriteLine(GetLookupsByLookupType(lookupType)); 

     Console.Read(); 
    } 

    public static string GetLookupsByLookupType(LookupType lookupType) 
    { 
     string SQL = String.Format(@"Select id, name, value, lookuptype from lookups where lookuptype = '{0}'", lookupType.ToString()); 

     return SQL;     
    } 

} 

public enum LookupType 
{ 
    Alignment, 
    Language, 
    ReEmbedBehavior 
} 

上記のようにSQL文字列を渡していないことを確認してください。文字列を1行にまとめて入力するか、次の文字列を使用してください:

 string SQL = String.Format(@"Select id, name, value, lookuptype from " + 
      "lookups where lookuptype = '{0}'", lookupType.ToString());