0

Select()メソッドを適用するデータテーブルがあります。その後、結果を文字列の配列に取得したいと考えています。次のコードを試しましたが、機能しません。これに対する正確な解決策を教えてください。

 DataTable dtget = HttpContext.Current.Cache["Hello"] as DataTable; 
    string sqlFilter = "Securityid = '" + CommonClass.Encryptdata(txtSecurity.Text) + "'";
    DataRow[] dr = dtget.Select(sqlFilter);
    if (dr.Length > 0)
    {
        String[] Con;
        for (int i = 0; i <= dr.Length; i++)
        {
            dr[i] = dr[i].ToString();

        }
    }
4

4 に答える 4

0

You have to create the List<T>.

Something like this:

 List<String[]> list=new List<String[]>();

   if (dr.Length > 0)
    {
        for (int i = 0; i < dr.Length; i++)
        {
            string []ar=new string[dtget.Columns.Count];
            for(int j=0;j<dtget.Columns.Count;j++)
             {
              ar[j]=dr[i][j].ToString();
             }
             list.Add(ar);
        }
    }
于 2012-07-03T10:38:53.987 に答える
0

必要に応じて、Datarow の ItemArray プロパティを使用できます。これは文字列配列ではなくオブジェクト配列ですが、その値を使用する前に「ToString()」を実行すると、すべて設定されます。

string a = dr.ItemArray[i].ToString();
于 2012-07-03T10:50:40.700 に答える
0

配列を宣言しましたが、インスタンス化していません。また、実際の配列には何も書き込んでおらず、データテーブルに直接書き戻そうとしています。

String[] Con= new String[dtget.Columns.Count]; 
for (int i = 0; i <= dr.Length; i++) 
{ 
    Con[i] = dr[i].ToString(); 
} 
于 2012-07-03T10:43:41.340 に答える
0

問題は、文字列配列ではなく dataarrow に値を代入していることです。変化する

dr[i] = dr[i].ToString(); 

con[i] = dr[i].ToString(); 

また、Con の新しいステートメントがありません。

Con = new String[dr.Table.Columns.Count];

dr.Length のようなものがないことに注意してください。列数を確認する必要があります。

dr.Table.Columns.Count

最後に、おそらく文字列配列の定義を上に移動して、IF の外部で使用できるようにする必要があります。

于 2012-07-03T10:43:58.440 に答える