PDA

View Full Version : جمع مقادیر ستونها در آخرین سطر دیتا گرید



mitra285
چهارشنبه 28 مهر 1389, 20:02 عصر
با سلام

من یک دیتا گرید دارم که داری 3 تا ستون هست

حالا می خوام جمع هر کدام از این 3 تا ستون به صورت خودکار تو آخرین سطر این ستونها در دیتا گرید اضافه بشه.

از چه کدی باید استفاده کنم ؟
ممنون می شم راهنمایی کنید.

b.mahsa
چهارشنبه 28 مهر 1389, 20:34 عصر
Dim sum As String
Dim count As Integer = DataGridView1.Rows.Count
For i = 0 To DataGridView1.Rows.Count
sum = sum + CInt(DataGridView1.Rows(i).Cells(4).Value.ToString )
Next
DataGridView1.Rows(count).Cells(4).Value = sum

mitra285
چهارشنبه 28 مهر 1389, 20:50 عصر
ممنون اما خطا می گیره :
تصویر رو ضمیمه کردم .

b.mahsa
چهارشنبه 28 مهر 1389, 20:56 عصر
متن eror تون میگه که سطری تو اون index وجود نداره .



Dim sum As String
Dim count As Integer = DataGridView1.Rows.Count-1
For i = 0 To DataGridView1.Rows.Count-1
sum = sum + CInt(DataGridView1.Rows(i).Cells(4).Value.ToString )
Next


این رو تست کنین. اگر سطر اخر گرید خالی باشه جواب میده اگر نه که.شما باید اول یه سطر اضافه کنید به data grid .
حالا چرا میخواید مقدار Sum رو تو datagrid نشون بدین؟
میتونین تو textbox زیر datagrid نشون بدین.

omid-vbAuto
چهارشنبه 28 مهر 1389, 21:29 عصر
salam

shoma toie gesmate shomaree sotoneton irad daren .

az code zer astefade kon,albate zamee soton haro be asme form mede.


Dim s As Single
Dim count As Integer = DataGridView1.Rows.Count
On Error Resume Next
For i = 0 To DataGridView1.Rows.Count - 1
s += CInt(DataGridView1.Rows(i).Cells(0).Value.ToString )
Next
Me.Text = s

alimanam
پنج شنبه 29 مهر 1389, 10:26 صبح
با سلام

جواب کامل شما این میشه با یه مثال ساده . ( جمع مقادیر هر ستون در آخرین رکورد دیتاگرید ویو ) موفق باشید .

Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
For i As Integer = 0 To 10
dg.Rows.Add()
Randomize()
dg.Rows(i).Cells(0).Value = i + 1
dg.Rows(i).Cells(1).Value = Int((1 + 25) * Rnd())
dg.Rows(i).Cells(2).Value = Int((1 + 50) * Rnd())
Next
dg.Rows.Add()
dg_CurrentCellChanged(sender, e)
End Sub

Private Sub dg_CurrentCellChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles dg.CurrentCellChanged
dg.Item(0, dg.Rows.Count - 1).Value = 0
dg.Item(1, dg.Rows.Count - 1).Value = 0
dg.Item(2, dg.Rows.Count - 1).Value = 0

Dim sum1, sum2, sum3 As Integer

For i = 0 To dg.Rows.Count - 1
sum1 += CInt(dg.Rows(i).Cells(0).Value)
sum2 += CInt(dg.Rows(i).Cells(1).Value)
sum3 += CInt(dg.Rows(i).Cells(2).Value)
Next

dg.Item(0, dg.Rows.Count - 1).Value = sum1
dg.Item(1, dg.Rows.Count - 1).Value = sum2
dg.Item(2, dg.Rows.Count - 1).Value = sum3
End Sub
End Class