2012-03-30 4 views
0

今回はかなり簡単な質問です。私は、次のように、データベースコネクタクラスでSelectメソッドを持っています。返されたリストの変数を使用する<>メソッド

public List <string> [] Select(string mQuery) 
{ 

    //Create a list to store the result 
    List<string>[] datalist = new List<string>[1]; 
    datalist[0] = new List<string>(); 


    //Open connection 
    if (this.OpenConnection() == true) 
    { 
     //Create Command 
     MySqlCommand cmd = new MySqlCommand(mQuery, mConnection); 
     //Create a data reader and Execute the command 
     MySqlDataReader dataReader = cmd.ExecuteReader(); 

     //Read the data and store them in the list 
     while (dataReader.Read()) 
     { 
      datalist[0].Add(dataReader["id"] + ""); 

     } 

     //close Data Reader 
     dataReader.Close(); 

     //close Connection 
     this.CloseConnection(); 

     //return list to be displayed 
     return datalist; 
    } 
    else 
    { 
     return datalist; 
    } 
} 

私は "datalist"にアクセスしたいと思います。

 results = mDB.Select(mQuery); 

戻り値はリストなので、この変数を新しいリストに割り当てる必要がありますか?

List<string>[] results = new List<string>[1]; 
         results[0] = new List<string>(); 
         results = mDB.Select(mQuery); 
         string result = results[0].ToString(); 

         MessageBox.Show(result); 

このメッセージボックスは、単に私が間違ってやっているのロジックについて「System.Collections.Generic.List1(可能System.String)」

任意のアイデアを生成?

+0

ToString()を行う必要はありません。すでに文字列のリストです –

+0

結果[0]もコレクションです。 results [0]にはdb列が含まれています。列 –

+0

のいずれかを選択する必要があります。乾杯人:D –

答えて

2

リストを配列にラップしないでください。

List<string> results = new List<string>(); 
results = mDB.Select(mQuery); 
string result = results[0].ToString(); 

MessageBox.Show(result); 

いずれかの方法で、問題は、デフォルトでは、ちょうどそれがタイプだ返すリストを表示しようとしていたということです。リスト自体ではなく、リストのメンバーを表示する必要があります。

0

あなたがしようとしているのは、リスト内のコンテンツをたとえば次のように表示する場合です。

MessageBox.Show(string.Join(",", list)); 

あなたが「System.Collections.Generic.List1(可能System.String)は」ListためToStringは単なる文字列を返すことで取得している理由:カンマで区切られた方法で、あなたはこのような何かを行うことができますそのタイプの表現。

また、他の人が指摘しているように、配列を失うはずです。あなたが何をしているかは、次のようなものです:

public List<string> Select(string mQuery) 
{ 
    //... 
} 

List<string> list = mDB.Select(mQuery); 
MessageBox.Show(string.Join(",", list)); 
関連する問題