2014-06-12 68 views
0

我有一個表單,我想知道是否可以計算datagridview中的特定列並使用生成按鈕將其輸出到標籤?如果是,我該如何去做呢?在datagridview中計算列

感謝

(這是在DataGridView如何設置)

Private Sub refreshdata() 
     If Not cnn.State = ConnectionState.Open Then 
      'open connection 
      cnn.Open() 
     End If 
     'create new data and insert the data, Employee, Firstname, lastname, address etc. 
     Dim da As New OleDb.OleDbDataAdapter("SELECT employeeno as [EmployeeID], " & _ 
             "firstname as [FirstName], lastname as [LastName], address as [Address], department as [Department], workinghours as [WorkingHours], datehired as [DateHired], contactnumber as [ContactNumber] " & _ 
             "FROM employee ORDER BY EmployeeNo", cnn) 
     Dim dt As New DataTable 
     'fill data into datatable 
     da.Fill(dt) 
     'offer data to be placed in datagridview 
     Me.DataGridView1.DataSource = dt 
     'close connection 
     cnn.Close() 
    End Sub`enter code here` 
+0

通過將特定列輸出到標籤是什麼意思?只是標題文本或特定字符串格式的特定列中的所有數據? – msmolcic

+0

是或可能的文本框 – user3562155

+0

是的,這是可能的。如何:編寫一些代碼來遍歷行並計算 – Plutonix

回答

1

我不知道你想做什麼。如果你想在你的textBox只是列標題試試這個:

C#

private void button1_Click(object sender, EventArgs e) 
{ 
    textBox1.Text = dataGridView1.Columns["columnName"].HeaderText; 
} 

VB

Private Sub button1_Click(sender As Object, e As EventArgs) 
    textBox1.Text = dataGridView1.Columns("columnName").HeaderText 
End Sub 

要放置你的輸出中的標籤簡單地改變textBox1.Textlabel1.Text。如果你希望你的某些列的細胞裏面寫的所有數據試試這個:

C#

private void button1_Click(object sender, EventArgs e) 
{ 
    StringBuilder sb = new StringBuilder(); 

    foreach (DataGridViewRow row in dataGridView1.Rows) 
    { 
     if (row.IsNewRow) 
      break; 

     sb.Append(row.Cells["columnName"].Value + " "); 
    } 

    textBox1.Text = sb.ToString(); 
} 

VB

Private Sub button1_Click(sender As Object, e As EventArgs) 
    Dim sb As New StringBuilder() 

    For Each row As DataGridViewRow In dataGridView1.Rows 
     If row.IsNewRow Then 
      Exit For 
     End If 

     sb.Append(row.Cells("columnName").Value + " ") 
    Next 

    textBox1.Text = sb.ToString() 
End Sub 

順便說一句,列名是列名設計當你點擊你的DataGridView>編輯欄根據設計,應該有一個「名稱」參數。希望這涵蓋了你的問題的答案。乾杯!

編輯:

增補列輸出的總和在的textBox溶液:

C#

private void button1_Click(object sender, EventArgs e) 
{ 
    int sum = 0; 

    foreach (DataGridViewRow row in dataGridView1.Rows) 
    { 
     if (row.IsNewRow) 
      break; 

     int number; 
     if (int.TryParse(row.Cells["columnName"].Value.ToString(), out number)) 
      sum += number; 
    } 

    textBox1.Text = sum.ToString(); 
} 

VB

Private Sub button1_Click(sender As Object, e As EventArgs) 
    Dim sum As Integer = 0 

    For Each row As DataGridViewRow In dataGridView1.Rows 
     If row.IsNewRow Then 
      Exit For 
     End If 

     Dim number As Integer 
     If Integer.TryParse(row.Cells("columnName").Value.ToString(), number) Then 
      sum += number 
     End If 
    Next 

    textBox1.Text = sum.ToString() 
End Sub 
+0

爲了讓您知道,我使用SQL在datagridview中創建了我的數據,並且不僅僅導入數據庫,這是否會產生影響,因爲我使用了代碼,並且它不起作用:( – user3562155

+0

@ user3562155你怎麼加載日期到你的datagridview?張貼一些代碼或圖片,我不知道你在做什麼.. – msmolcic

+0

我發佈了代碼 – user3562155