PDA

View Full Version : سوال: چگونه اطلاعات جستجو شده در بانک Sql2000 را در دیتا گریدویو نمایش دهم؟



sajjad etemadfar
جمعه 02 اردیبهشت 1390, 13:06 عصر
با عرض سلام
من در یک ماژول طراحی کردم وبانکم را در ماژول به وی بی متصل کردم
کد های اتصال بانک من به اس کیو ال را ماژول در زیر ببینید:

Imports System.Data

Imports System.Data.SqlClient
Module Module1
Public con As SqlConnection
Public ds As New DataSet
Public da As SqlDataAdapter
Public cmd As New SqlCommand
Public str As String
Public dr As SqlDataReader

Public Function exereader(ByVal str As String) As SqlDataReader
con = New SqlConnection("Data Source=.;Initial Catalog=Bimarestan;Integrated Security=True")
con.Open()
cmd.CommandText = str
cmd.Connection = con
exereader = cmd.ExecuteReader()

End Function
Public Sub execmd(ByVal str As String)
con = New SqlConnection("Data Source=.;Initial Catalog=Bimarestan;Integrated Security=True")
con.Open()
cmd.CommandText = str
cmd.Connection = con
cmd.ExecuteNonQuery()
con.Close()


End Sub
Public Sub DataGr(ByVal tabelname As String, ByVal Datagrid As DataGridView)
con = New SqlConnection("Data Source=.;Initial Catalog=Bimarestan;Integrated Security=True")
con.Open()
str = "Select * from " + tabelname
da = New SqlDataAdapter(str, con)
ds.Clear()
da.Fill(ds, tabelname)
Datagrid.DataSource = ds.Tables(tabelname)
con.Close()
End Sub
End Module


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

str = "Select * from bimar where Code='" + TextBox1.Text + "'"
dr = exereader(str)
If dr.Read Then
DataGr("Bimar", DataGridView1)


Else
MsgBox("چنین بیماری وجود ندارد", MsgBoxStyle.Critical, "یافت نشد")


End If
con.Close()


با زدن این دکمه بیمارانی که قبلا ثبت شده اند جستجو می شوند

مشکل من اینجاست که می خواهم فقط اطلاعات بیماری را که جستجو کرده ام نمایش داده شود ولی اینطور نیست وهمه ی بیماران را نمایش میدهد
چه کنم؟
در تصویر زیر فرم مربوطه را ببینید که من با جستجوی کد 1 تمامی افراد ظاهر شده اند در حالی که نمی خواهم اینگونه باشد وفقط می خواهم اطلاعات حمید رضا بافنده زاده که کدش 1 است نمایش داده شود یعنی بقیه فیلتر شوند.

http://tehranpic.net/download.php?img=530646

sajjad etemadfar
جمعه 02 اردیبهشت 1390, 23:52 عصر
کسی کمکم نمی کنه؟:ناراحت:

barbodsoft.com
شنبه 03 اردیبهشت 1390, 00:04 صبح
کسی کمکم نمی کنه؟:ناراحت:

کدها رو تو تگ کد قرار بده تا بتونیم بهتر بررسی کنیم. اگه از تگ کد استفاده کنی بهم نمی ریزه و راحت خونده می شه

sajjad etemadfar
شنبه 03 اردیبهشت 1390, 15:53 عصر
سلام آقا کدها رو تو تگ کد گذاشتم خراب شدن همینجوری مگه چشونه به ترتیب نوشتمشون
شما اصل قضیه رو بچسب و کمکم کن ممنون میشم
از همه می خوام کمکم کنید پروژه ام به خاطر همین مسئله و همین مشکل متوقف شده

amirsadeghi
یک شنبه 04 اردیبهشت 1390, 22:53 عصر
executereader رو به executescalar تغییر بده

amirsadeghi
یک شنبه 04 اردیبهشت 1390, 23:36 عصر
خروجی scalar از نوع object هست. اصلاح بفرمایین
اگر همیشه یک مورد رو برگردوند بدونید فیلترتون حتما مشکل داره.
ولی شاید بشه با sort کردن مشکلش رو برطرف کرد

roze_abi-r
سه شنبه 06 اردیبهشت 1390, 17:34 عصر
خوب برای این کار باید تو این قسمت یه تغییراتی بدی

Public Sub DataGr(ByVal tabelname As String, ByVal Datagrid As DataGridView,byval strSearch as string)
con = New SqlConnection("Data Source=.;Initial Catalog=Bimarestan;Integrated Security=True")
con.Open()str = "Select * from " + tabelname[/VB]

[COLOR=black]مقدار دهی میشه

پس باید مقدار دهی داخل تابع Public Sub DataGr رو تغییر بدید.

قسمتی از تابع Public Sub DataGr رو من تغییر دادم این کد کارتون رو راه میندازه

و دیگه لازم نیست متغیر str رو داخل تابع کلیک دکمه جستجو مقدار دهی کنید.

فقط یک آرگومان به نام strSearch به تابع اضافه کردم که هنگام فراخوانی این تابع باید مقدار دهی بشه

به این صورت

DataGr("Bimar", DataGridView1,trim( TextBox1.Text))

sajjad etemadfar
پنج شنبه 08 اردیبهشت 1390, 22:27 عصر
آقا ما به جایی نرسیدیم اصلا یه کار من می خوام فقط یه رکوردو مثلا فقط یه دونه بیمارو نشون بدم تو دیتا گرید ویو اطلاعاتشو چی کار کنم؟

barbodsoft.com
جمعه 09 اردیبهشت 1390, 01:21 صبح
http://barnamenevis.org/showthread.php?284829-%D9%86%D9%85%D8%A7%DB%8C%D8%B4-%DB%8C%DA%A9-%D8%B1%DA%A9%D9%88%D8%B1%D8%AF-%D8%AF%D8%B1-%D8%AF%DB%8C%D8%AA%D8%A7-%DA%AF%D8%B1%DB%8C%D8%AF-%D9%88%DB%8C%D9%88

sajjad etemadfar
جمعه 09 اردیبهشت 1390, 22:49 عصر
از لینک بالا چیزی دستگیرم نشد بیشتر راهنمایی کنید

barbodsoft.com
شنبه 10 اردیبهشت 1390, 00:47 صبح
از لینک بالا چیزی دستگیرم نشد بیشتر راهنمایی کنید

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


con = New SqlConnection("Data Source=.;Initial Catalog=Bimarestan;Integrated Security=True")
con.Open()
Dim da As New SqlDataAdapter("Select * from bimar where Code='" + TextBox1.Text + "'", con)
Dim ds As New DataSet
da.Fill(ds, "bimar")
DataGridView1.DataSource = ds.Tables("bimar")
con.Close()


اگه لازم داری که پیغام عدم وجود بیمار رو صادر کنی بگو تا برات بزارم. در ضمن اگه کد ها تو توی تگ کد می نوشتی زودتر جواب می دادم.

sajjad etemadfar
یک شنبه 11 اردیبهشت 1390, 23:10 عصر
؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

barbodsoft.com
دوشنبه 12 اردیبهشت 1390, 00:04 صبح
؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

یعنی چی ؟ شما مشکل زیر رو داشتی و اگه کدی که من گذاشتم رو استفاده کنی باید برطرف شه. سوال دیگه ای داشتی در خدمتم.


مشکل من اینجاست که می خواهم فقط اطلاعات بیماری را که جستجو کرده ام نمایش داده شود ولی اینطور نیست وهمه ی بیماران را نمایش میدهد