2

私はこのコードで作成されたリストビューを持っています:

if (popula.Rows.Count > 0)
{
     foreach (DataRow row in popula.Rows)
     {
         listView1.Items.Add(row[0].ToString());
         listView1.Items[listView1.Items.Count - 1].SubItems.Add(row[1].ToString());
         listView1.Items[listView1.Items.Count - 1].SubItems.Add(row[2].ToString());
         listView1.Items[listView1.Items.Count - 1].SubItems.Add(row[3].ToString());
         listView1.Items[listView1.Items.Count - 1].SubItems.Add(row[4].ToString());
     }

最初の列は、次の形式の数値です。

  Code
 ------------- 
  69675.0000
   6078.0000
  57536.0000
  37625.0000
  54079.0000
  57933.0000
  51968.0000
  59160.0000
  25392.0000

表示のみが必要です:

69675
 6078   

ゼロとポイントを表示するのは好きではありません。多分このような息子

 listView1.Items[listView1.Items.Count - 1].SubItems.Add.format ((row[4].ToString()));

非難私は書いている

 listView1.Items.Add(row[0].ToString("F0"));

このエラーを表示してください:「メソッド 'Testing'のオーバーロードはありません」は1つの引数を取ります。

追加しました

 using system.globalization; 

それでもエラーが表示されます。

4

2 に答える 2

0

linq をデータセットに使用する(参照に System.Data.DataSetExtensions があることを確認してください):

const string format = "D";
Func<DataRow, int, string> formatter = 
  (DataRow row, int index) => row.Field<double>(index).ToString(format);

foreach (DataRow row in popula.AsEnumerable())
{
  var item = listView1.Items.Add(formatter(row, 0));

  for (int i = 1; i <= 4; i++)
  {
    item.SubItems.Add(formatter(row, i));
  }
}
于 2013-07-04T14:45:54.350 に答える