PDA

View Full Version : کد جستجو با استفاده از datatable به زبان vb.net



misagh1370
سه شنبه 04 تیر 1392, 19:57 عصر
با عرض سلام خدمت همه ی دوستان محترم
برنامه ی من هنگام جستجو بعضی حروف مثل ت و ه و... رو در گریدویو نمایش نمیده و یکی از دوستانم گفت که کارت فقط توسط جستجو از طریق datatable درست میشه. کد جستجو از طریق datatableرو میخواستم.ترجیحا این کد vb.net باشه.منتظر راهنماییتون هستم .بی نهایت سپاس:لبخندساده:

misagh1370
چهارشنبه 05 تیر 1392, 13:36 عصر
دوستان خواهش میکنم یکی کمک کنه احتیاج خیلی فوری دارم به این کد.
یه کد جستجو توسط datatable میخوام به زبان vb.net

poorman
چهارشنبه 05 تیر 1392, 16:40 عصر
dataview1.rowfilter="xxx like'" & textbox1.tex & "*'"

امیدوارم مفید باشه واست
به جای xxx اسم فیلدی رو بذار که میخوای بر اساس اون جستجو کنی

misagh1370
پنج شنبه 06 تیر 1392, 00:50 صبح
poormanممنون از راهنماییتون . اما من کد حستجو توسط datatableرو بطور کامل میخوام .آخه تا حالا با datatable کار نکردم.یه خط کد دردی رو واسم دوا نمیکنه.پورمن و بقیه ی دوستان خواهشا راهنماییم کنید.:گریه:

poorman
پنج شنبه 06 تیر 1392, 05:06 صبح
بذار یه چند تا چیز رو ازت بپرسم
با SQL کار میکنی دیگه ؟ آره ؟
ارتباط بین برنامه و SQL رو برقرار کردی ؟

دقیقا میخوای واسه چی جستجو کنی ؟ کاری که میخوای انجام بدی رو بهم بگو تا راهنماییت کنم
در حالت کلی باید یک dataset و dataview به sqldataAdaptor وصل کنی تا بتونی اطلاعات رو وارد کنی ، نمایش بدی ، جستجو کنی

میخوام بدونم بعد از اینکه جستجو کردی میخوای چه استفاده ای ازش بکنی ؟ میخوای نمایش بدی ؟ یا میخوای ازش استفاده محاسباتی بکنی ؟

اگر میخوای نمایش بدی ، همون خط کدی که نوشتم رو ، توی تکس باکس مینویسی ، بعدش به ازای هر چیزی که وارد بشه ، تمام فیلدهای xxx رو که اون مقدار رو داشته باشن نمایش میده

اما اگه میخوای مثلا یه عدد رو از جدول جستجو کنی ، بعدش ازش استفاده محاسباتی یا هرچیز دیگه کنی اینطوری انجام میشه
dataview1.rowfilter="xxx like '" & textbox1.text & "'"
if dataveiw1.rows.count>0 then
dim Number as integer = dataview1.item(0).item(x)
end if


این یه نمونه بود ، مثلا میای جستجو میکنی ردیفی از جدول که مقدار xxx برابر با "متن داخل تکس باکس یا هرچیز دیگه ای" باشه
بعدش توی اون ردیفی که پیدا شده ، میگی اون فیلدی که لازم داری رو برداره ، مثلا اینجا آیتم x ، که مثلا میشه ستون پنجم

امیدوارم مفهوم باشه !!!
در غیر اینصورت باید دنبال آموزش های خیلی ابتدایی تر باشی

misagh1370
پنج شنبه 06 تیر 1392, 14:02 عصر
دوست عزیز پورمن گرامی قبل از هر چیز باید ازشما بخاطر راهنمایی هاتون تشکر کنم.
بله من با اس کیو ارتباطم رو برقرار کردم من خودم از این برای جستجو استفاده میکنم .درواقع میخوام بعد از وارد کردن نام شهر در تکست باکس ،تمام اطلاعات این شهرها رو در گریدویو نمایش بدم .این کد بخوبی عمل میکنه اما بعضی شهرها که مثلا حرف ی در آن ها هست رو نشون نمیده مثل ایذه.

sqldataadapter1.selectcommand.commandtext="select * from company where city like '%" & TextBox1.Text
"%'&
ProjectDataSet1.company.Clear
OleDbDataAdapter1.Fill(ProjectDataSet1.company
پور من این کد درست کار میکنه اما بخاطر مشکل حروفی که داره میخوام جستجو رو بوسیله ی دیتا تیبل انجام بدم .یه جستجو ساده که بعد از جستجو اطلاعات رد تو گریدویو نمایش بده.:اشتباه:

poorman
پنج شنبه 06 تیر 1392, 23:46 عصر
حرف "ی" یکی از مشکلات جستجوی SQL هست که باید یه برنامه حرفه ای واسه حل مشکلش نوشته بشه که من الان یاد ندارم
راه دیگه ای هم واسه جستجو بلد نیستم که بتونم راهنماییت کنم :)

misagh1370
پنج شنبه 06 تیر 1392, 23:50 عصر
دوستان کسی نیست که کدجستجو توسط دیتاتیبل رو بطور کامل داشته باشه که نتیجه ی جستجو رو توی گریدویو نشون بده.
دوستان مهندس خواشا راهنمایی کنین.:افسرده:

misagh1370
پنج شنبه 06 تیر 1392, 23:56 عصر
پورمن اگه کد جستجو توسط دیتاتیبل بنویسیم این مشکل حل میشه.

sinaexample
جمعه 07 تیر 1392, 15:03 عصر
این یک مثال از فیلد جستجو که در برنامه خودم نوشتم با استفاده از دیتا تیبل میاد تمام رکوردهایی که شبیه به مقدار وارد شده در textoxX1 باشند رو در یک دیتا گرید ویو نشون میده. مشکلت با این مثال حل بشه.



Dim TA As New DataSet1TableAdapters.MemberTableAdapter
Dim dt As New DataSet1.MemberDataTable
Private Sub TextBoxX1_TextChanged(sender As Object, e As EventArgs) Handles TextBoxX1.TextChanged
TA.Fill(dt)
Dim query = From i In dt Where i.m_fname Like TextBoxX1.Text & "*" Select New With {.نام = i.m_fname & " " & i.m_lname, .نام_پدر = i.m_father}
DataGridView1.DataSource = query.ToList
End Sub

sinaexample
جمعه 07 تیر 1392, 15:06 عصر
البته قبلش برای استفاده از دیتا تیبل شما باید یک دیتاست به پروژت اضافه کنی و جداول رو داخلش بکشی و ادد کنی .

misagh1370
جمعه 07 تیر 1392, 17:35 عصر
دوست گرامی sinaexampleممنون از راهنماییت.من واسه پروژم از شی sqldataadapterاستفاده میکنم.و تا حالا از tableadapter استفاده نکردم. میشه واسم توضیح بدین که برای استفاده از این کد ،دقیقا چه شی ای رو روی فرمم قراربدم.آیا برای استفاده از دیتاتیبل شی خاصی رو باید به برنامم اضافه کنم.ممنون میشم بشتر راهنماییم کنید.
بی نهایت سپاس:لبخندساده:

sinaexample
جمعه 07 تیر 1392, 19:42 عصر
اول باید روی solution کلیک راست کنی و از گزینه ادد یک دیتاست درست کنی
بعدش از منوی server Explorer جدول مورد نظر رو به داخل محیط دیتاست میکشی(drag میکنی)
وقتی اینکار رو میکنی در واقع دیتاست به طور خودکار یک دیتاتیبل درست میکنه
بعدش کدهای بالا رو در رویداد text_change همون تکست باکسی که میخوای کلمه داخل جستجو بشه وارد میکنی البته به جای member (که اسم جدول من هست) اسم جدول خودت رو بزار و به جای فیلدهایی مثل m_fname یا m_lname اسم فیلدهای خودت رو بزار
امیدوارم چیزی رو فراموش نکرده باشم.
اگه مشکلی بود بپرس.

misagh1370
جمعه 07 تیر 1392, 22:48 عصر
sinaexample ممنون از راهنمایتت .دیتاتیبل ایجادکردم.اما تو گریدویو چیزی نمایش نمیده.میشه درمورد اون قسمت کدی که توی {} نوشتی واسم توضیح بدی
اون قسمتی که نوشتی نام. متوجه نمیشم یعنی چی؟شما با نوشتن این کد ،با عدم نمایش حروفی مثل ی مشکل نداشتین؟
ممنون

sinaexample
جمعه 07 تیر 1392, 23:04 عصر
سلام
نه مشکلی ندارم
داخل {} در واقع فیلدهام رو تغییر نام دادم شما میتونی تغییر نام ندی و فقط اسم فیلدهات رو ذکر کنی.
TA.Fill(dt) رو حتما باید بنویسی تا دیتاآداپتر مقادیر رو داخل دیتا تیبل fill کنه(پر کنه)
کدت رو بزار ببینم مشکلش کجاست

misagh1370
شنبه 08 تیر 1392, 18:33 عصر
Dim TA As New DataSet2TableAdapters.companyTableAdapter
Dim dt As New DataSet2.companyDataTable
TA.Fill(dt)
Dim query = From i In dt Where i.city Like txt_search.Text & "*" Select New With {.mellicodem = i.mellicodem & "", .Fname = i.fname & "", .lname = i.lname & "", .company = i.company & " ", .markaz = i.markaz & "", .city = i.city & "", .mozoogharardad = i.mozoogharardad & "", .fdate = i.fdate & "", .ldate = i.ldate}
DataGridView1.DataSource = query.ToList

misagh1370
شنبه 08 تیر 1392, 18:38 عصر
دوست گرامی خیلی از راهنمایی هاتون ممنونم:لبخندساده:
اینم کدم :اشتباه:.

misagh1370
شنبه 08 تیر 1392, 23:30 عصر
sinaexample گرامی خداروشکر با راهنمایی تون مشکلم حل شد.
از شما و بقیه ی دوستان کمال تشکر را دارم.
بی نهایت سپاس:لبخندساده:

arman 2012
شنبه 15 تیر 1392, 11:18 صبح
دوست من
ببخشید ولی شما احتمالا table خودتون رو توی sql
nvarchar تعریف کردید
منم مشکا داشتم
اگر varvhar کنید تمومه

misagh1370
شنبه 15 تیر 1392, 12:30 عصر
دقیقا همین طوره nvarcharتعریف کرده بودم .