PDA

View Full Version : سوال: اضافه كردن ركورد در سطر iام data table



sanaz e
سه شنبه 22 اردیبهشت 1388, 11:02 صبح
چطور ميتونم يك ركورد جديد به سطر Iام اضافه كنم؟ يعني وقتي يك row جديد ميسازم به آخر data table اضافه نشه بلكه به اون جايي كه من ميخوام اضافه بشه؟ كمك كنيد:ناراحت:

aliila
سه شنبه 22 اردیبهشت 1388, 17:18 عصر
بصورت قانوني نمي توانيد DATATABLE را شيفت دهيد
مگر كپي رديفهاي سطر I ام و پايين تر را در TABLE TEMP قرار داده و سپس از جدول حذف كنيد و رديف خود را اضافه كنيد و سپس ا......

ويا از datatable خود كلوني بگيريد و سپس تاسطر i ام را به تيبل جديد اضافه كنيد و سپس سطر جديد را اضافه كنيد و سپس ....

anooshiran
سه شنبه 22 اردیبهشت 1388, 17:51 عصر
سلام دوست عزيز

دستور خاص و مستقيمي براي اضافه كردن سطر به رديف خاص موجود نيست ولي با چند قطعه كد ميتوان اين كار را انجام داد

نمونه كد زير اين مشكل را براي تو حل خواهد كرد.

ماژول InsertRow وظيفه اضافه كردن يك سطر به رديف دلخواه شما را دارد





Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim dt As New DataTable
dt = CreatDataTable()
dt = InsertRow(dt, 3)
End Sub
Private Function CreatDataTable() As DataTable
Dim Newdt As New DataTable
For i As Integer = 0 To 1
Dim dc As New DataColumn
dc.ColumnName = "Col" & i.ToString
dc.DataType = GetType(Integer)
Newdt.Columns.Add(dc)
Next
For i As Integer = 0 To 5
Dim dr As DataRow = Newdt.NewRow
dr(0) = i
dr(1) = i + 10
Newdt.Rows.Add(dr)
Next
Return Newdt
End Function
Private Function InsertRow(ByVal dt As DataTable, ByVal InsRow As Int16) As DataTable
Dim Newdt As New DataTable
Newdt = dt.Copy
Newdt.Clear()
Dim j As Int16 = 0
For Each row As DataRow In dt.Rows
Newdt.LoadDataRow(row.ItemArray, False)
j += 1
If j = InsRow Then
Newdt.Rows.Add()
End If
Next
Return Newdt
End Function

farrokhi
پنج شنبه 21 آبان 1388, 17:59 عصر
با سلام. اولا من نمی دونم چطوری باید یک سوال رو تو سایت بنویسم. دوما اینکه من در datatable در محل iام یک سطر اضافه کردم اما نمی دونم چطور همین جدول رو بروز کنم و در همون دیتاست خودش در دیتاگراید ویو بروزرسانی و نمایش بدم.
چند خط کد نوشتم ولی ارور میدهه که یک تیبل قبلا با این نام بوده.لطفا راهنمایی کنید ممنونم.حسین فرخی

farrokhi
پنج شنبه 21 آبان 1388, 18:03 عصر
منم این مشکل رو دارم.البته با چند خط راهنمایی بچه ها تونستم در محل دلخواه سطر ایجاد کنم ولی نمی دونم چطور تیبل رو بروزرسانی کرده و در همون دیتاست خودش و در همون دیتاگرید نمایش بدم.
اگر به نتیجه ای رسیدید ممنون می شم راهنمایی کنید.

با تشکر
حسین فرخی

tabatabaeefar
شنبه 23 آبان 1388, 09:15 صبح
سلام
فكر نميكنيد به جاي اينكه همه سطرها رو از سطر i ام تا سطر آخر يكي يكي جابجا كنيم بهتره از روش زير استفاده كنيم؟
1- يك سطر به انتهاي جدول اضافه كنيم.
2- مقدار سطر i ام را در سط آخر بنويسيم.
3-اطلاعات مورد نظر را در سطر i ام قرار دهيم.
نكته: البته در اين روش نظم سطرها به هم ميخوره اما به سرعت برنامه خيلي كمك ميشه.
موفق باشيد