PDA

View Full Version : فیلتر اطلاعات DAtaView



Hossis
چهارشنبه 18 آبان 1390, 20:12 عصر
من با این کد خواستم اطلاعات را در دیتا ویو فیلتر کنم و بعد ردیف های فیلتر شده را نمایش بدهم ولی نشد
کل کل را این حا می گذارم ، ببینید اشکالش جیه؟
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
GetByFilter("[Form]", "[Name],[Family],[Phone]", "[Phone] Like'0%'")
Dim pR As Object = DV
DG.Rows.Clear()
Dim dvr() As DataRow = DV.Table.Select("Phone>0")
For Each DR As DataRow In dvr

Dim R As Integer = DG.Rows.Add()
DG.Rows(R).Cells(0).Value = DR.Item(0)
DG.Rows(R).Cells(1).Value = DR.Item(1)
DG.Rows(R).Cells(2).Value = DR.Item("Phone")
Next
stb1.Text = DG.Rows.Count
End Sub

Sub GetByFilter(ByVal table As String, ByVal Fields As String, Optional ByVal where As String = "")

Dim sqlstr As String
sqlstr = "Select " & Fields & " from " & table

If cnn.State = 0 Then cnn.Open()
Dim da As New OleDbDataAdapter(sqlstr, cnn)
ds.Clear()
da.Fill(ds, table)
DV.RowFilter = where

DV.Table = ds.Tables(table)
DV.Table.Select(where)
End Sub

Hossis
چهارشنبه 18 آبان 1390, 20:14 عصر
اگر ممکنه نحوه فیلتر کردن دیتا گرید یا دیتا ویو رو به طور کامل توضیح بدی یا یک مثال بیارید

از همه شما ممنونم

mgh64120
پنج شنبه 19 آبان 1390, 00:49 صبح
سلام



DA = New SqlDataAdapter
DS = New DataSet
DA.SelectCommand=New SqlCommand
DA.SelectCommand.Connection = Con
DA.SelectCommand.CommandText="Select Field1,Field2,... From TableName"
DA.SelectCommand.CommandType = CommandType.Text
DA.Fill(DS, "TableName")
DV = New DataView(DS.Tables("TableName"))
'
Grid.AutoGenerateColumns = True
Grid.DataSource = DV

بعد


DV.RowFilter = "Field1 = 1"
موفق باشي

Hossis
پنج شنبه 19 آبان 1390, 18:32 عصر
سلام



DA = New SqlDataAdapter
DS = New DataSet
DA.SelectCommand=New SqlCommand
DA.SelectCommand.Connection = Con
DA.SelectCommand.CommandText="Select Field1,Field2,... From TableName"
DA.SelectCommand.CommandType = CommandType.Text
DA.Fill(DS, "TableName")
DV = New DataView(DS.Tables("TableName"))[/SIZE][/SIZE]
'
Grid.AutoGenerateColumns = True
Grid.DataSource = DV

بعد


DV.RowFilter = "Field1 = 1"
موفق باشي
مطمتن هستید این راه جواب می ده؟
چون من می خوام اول تمام جدول (البته فیلد های خاص اما بدون شرط) را به حافظه لود کنم و بعد از توی دیتا ویو, باشرط خاصی, استخراج کنم
به هر حال ممنونم

mgh64120
پنج شنبه 19 آبان 1390, 23:01 عصر
سلام دوست عزيز
چرا جواب نده؟ من توي برنامه ي خودم به دفعات استفاده كردم. اگه به مشكلي برخوردي من در خدمتم.

Hossis
شنبه 19 آذر 1390, 21:30 عصر
سلام دوست عزيز
چرا جواب نده؟ من توي برنامه ي خودم به دفعات استفاده كردم. اگه به مشكلي برخوردي من در خدمتم.

سلامی دوباره
من این کد رو اجرا کردم و جواب داد لذا ممنونم
فقط مشکلم اینه که می خوام چندین جدول رو همزمان در فرمم داشته باشم ولی هر کار می کنم , نمی شه و دیتا ویو , تنها یک جدول رو نگه می داره
اگر کدی در این زمینه باشه ممنون می شم

meisam3322
شنبه 19 آذر 1390, 21:50 عصر
دوست عزیز برای ترکیب چندین جدول شما می بایست از کوئری های Sql استفاده کنی.

Hossis
یک شنبه 20 آذر 1390, 00:31 صبح
دوست عزیز شما باید از دستورات Sql استفاده کنین.


دوست عزیز برای ترکیب چندین جدول شما می بایست از کوئری های Sql استفاده کنی.
من هم از دستورات SQL استفاده می کنم
می شه کمی بیشتر و با ذکر یک مثال توضیح بدید؟؟

meisam3322
یک شنبه 20 آذر 1390, 10:49 صبح
اینو دانلود کن . حتما کارت رو راه میندازه، اکثر دستورات مهم SQL داخلش هست، با مثال 79033

این هم یه PDF دیگه که خیلی کاملتر از قبلیه (http://www.elgad.ir/images/sql.zip).

موفق باشی

mgh64120
یک شنبه 20 آذر 1390, 22:22 عصر
سلام دوست عزيز

فقط مشکلم اینه که می خوام چندین جدول رو همزمان در فرمم داشته باشم ولی هر کار می کنم , نمی شه و دیتا ویو , تنها یک جدول رو نگه می داره

هدف شما از نگهداري چندين جدول به طور همزمان چيه؟
آيا اين چند جدول به هم ربط دارند؟(بين انها رابطه برقراره؟)
ايا ميخواهيد اونها در ديتاگريدويوو نمايش بديد يا نه ؟
لطفا يه مقدار در مورد جدول هاتون توضيح بديد.
موفق باشيد...

Hossis
یک شنبه 20 آذر 1390, 23:52 عصر
با سلام و تشکر از پاسخگویی شما
من چند جدول دارم که می خواستم به ترتیب در اونها جستجو کنم
وبابد همه در حافظه باشند همانطور که عرض شد چون خواندن آن از روی دیسک و پایگاه داده, سرعت رو پایین می آورد
البته الان مشکل رو از طریق دیگری حل کردم
ولی اگر از این راه حل می شد, بهتر بود
چون جداول بعدی (غیر از اولی) خیلی سنگین نبودند, در لیست باکس, لود کردم و در حال اجرا, توسط کدهای دیگری در آنها جستجو رو انجام دادم
من نمی خواستم دردیتا گرید نمایش بدم فقط می خواستم همه به حافظه رم بیایند تا سرعت جستجو بالا بره
همین