2016-04-26 5 views
2

私は3列のグリッドビューを持っています。 Websitename、URL、ステータス。私はxmlファイルからウェブサイト名とURLを取得します。 url frm xmlファイルを取得した後、私はWebサイトにpingします。 pingが成功すると、gridviewのステータス列は緑色になります。 pingが失敗すると、ステータス列は赤色になります。ウェブサイトをpingしてgridviewにステータスを表示するには

以下は私のコードです。

foreach (XmlNode node in nodeList) 
{ 
    string Instance = node.Attributes["name"].Value.Trim(); 
    foreach (XmlNode nodeChild in node.ChildNodes) 
    { 
     DataRow dr = dtIPCheckList.NewRow(); 

     dr["Instance"] = Instance; 
     dr["WebServer"] = nodeChild.Attributes["name"].Value.Trim(); 
     dr["URL"] = nodeChild.Attributes["IPFQDN"].Value.Trim(); 
     dr["Status"] = "GREEN"; //hardcoding at the moment. 
     dtIPCheckList.Rows.Add(dr); 
    } 
} 

現在のところステータスをハードコーディングしていますが、成功または失敗ごとにpingしてステータスを表示します。

私を導いてください。

+0

あなたは、セルの色が緑色になります意味ですか?またはテキストが緑色になりますか?同様にif(pingReply.Status!= "Success"){DR ["Status"] = "Red";その他DR ["Status"] = "Green";} –

答えて

2

私はちょうどこの簡単なプログラムを書いて、動作しているようです:

namespace WebsitePingTest 
{ 
    using System; 
    using System.Data; 
    using System.Drawing; 
    using System.Net.NetworkInformation; 
    using System.Windows.Forms; 

    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      this.InitializeComponent(); 
     } 

     private void Form1_Load(object sender, EventArgs e) 
     { 
      var dt = new DataTable(); 
      dt.Columns.Add(new DataColumn("Websitename", typeof(string))); 
      dt.Columns.Add(new DataColumn("URL", typeof(string))); 
      dt.Columns.Add(new DataColumn("Status", typeof(string))); 

      var row = dt.NewRow(); 
      row["Websitename"] = "Google"; 
      row["URL"] = "www.google.com"; 
      dt.Rows.Add(row); 

      row = dt.NewRow(); 
      row["Websitename"] = "Yahoo"; 
      row["URL"] = "www.yahoo.com"; 
      dt.Rows.Add(row); 

      row = dt.NewRow(); 
      row["Websitename"] = "xasfjhasfkjh"; 
      row["URL"] = "www.xasfjhasfkjh.com"; 
      dt.Rows.Add(row); 

      var view = new DataView(dt); 
      this.dataGridView1.DataSource = view; 

      foreach (DataGridViewRow dataGridViewRow in dataGridView1.Rows) 
      { 
       var url = dataGridViewRow.Cells[1].Value.ToString(); 

       var ping = new Ping(); 

       PingReply result = null; 
       IPStatus status; 
       try 
       { 
        result = ping.Send(url); 
        status = result.Status; 
       } 
       catch (Exception ex) 
       { 
        status = IPStatus.DestinationHostUnreachable; 
       } 

       if (status != IPStatus.DestinationHostUnreachable) 
       { 
        dataGridViewRow.Cells[2].Style.BackColor = Color.Green; 
       } 
       else 
       { 
        dataGridViewRow.Cells[2].Style.BackColor = Color.Red; 
       } 
      } 
     } 
    } 
} 

Website Statuses

+0

ありがとうございました – SJD

関連する問題