PDA

View Full Version : مشکل در خواندن اطلاعات



khomar
دوشنبه 29 بهمن 1386, 23:55 عصر
سلام
در فرم لود قرار هست از دوتا تیبل مختلف اطلاعات رو بخونم
و هر تیبل رو به کامبو مختلف قرار بدم من کد رو نوشتم جواب هم می ده اما مشکل اینجاست
که در کامبو دومی به تعداد مقدارهای
کامبو اولی فاصله می ندازه
مشکل از کجاست؟
سعی کرم از
dt.clear
استفاده کنم چون قبلا از
dt.clear
جواب گرفته بودم اما اینجا کار رو بدتر می کنه
یعنی دیگه اطلاعات تیبل اول در کامبو اول قرار نمی گیره
ممنون می شم اگه کسی بگه مشکل از کجاست؟

Dim cmd As New OleDb.OleDbCommand
Dim con As New OleDb.OleDbConnection
Dim da As New OleDb.OleDbDataAdapter(cmd)
Dim dt As New DataTable
Dim str As String
Dim connectionString = "provider=microsoft.jet.oledb.4.0;data source=d:\mahi\mahi\bin\mahi.mdb;"
str = "select major from major"
Try
con.ConnectionString = connectionString
cmd.Connection = con
con.Open()
cmd.CommandText = str
da.Fill(dt)
con.Close()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try

ComboBox1.DataSource = dt
ComboBox1.DisplayMember = "major"
'dt.Clear()

str = "select type_cd from type"
Try
con.Open()
cmd.CommandText = str
da.Fill(dt)
con.Close()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try

ComboBox2.DataSource = dt
ComboBox2.DisplayMember = "type_cd"

visual_sadegh
سه شنبه 30 بهمن 1386, 09:39 صبح
دو راه برای رفع این اشکال هست
1- برای هر کامبو یک دیتا تیبل جداگانه تعریف کن
2- با استفاده از حلقه و دیتا ریدر این مشکلو می تونی رفع کنی.
فکر میکنم راه اولی برای برنامه شما بهتر باشه

ghafoori
سه شنبه 30 بهمن 1386, 10:12 صبح
دوست عزیز شما باید نوع dt را به دیتاست تغییر بدید شما نمی توانید همزمان دو کمبوباکس را به یک جدول که دوبار پرشده متصل کنید

khomar
سه شنبه 30 بهمن 1386, 11:07 صبح
راستش من اول می خواستم دو تا دیتا تیبل تعریف کنم اما اومدم همین جا سوال کردم دوستان گفتند لازم نیست دو سری متغیر استفاده کنی اتفاقا سری قبل هم اشکالم در کامبو ها بود که اونجوری جواب دادند.مرسی

visual_sadegh
سه شنبه 30 بهمن 1386, 12:59 عصر
راستش من اول می خواستم دو تا دیتا تیبل تعریف کنم اما اومدم همین جا سوال کردم دوستان گفتند لازم نیست دو سری متغیر استفاده کنی اتفاقا سری قبل هم اشکالم در کامبو ها بود که اونجوری جواب دادند.مرسی
درسته می شه در این صورت باید با استفاده از حلقه کامبوهاتو پرکنی

reza6384
چهارشنبه 01 اسفند 1386, 22:02 عصر
سلام. من توی برنامه ام به این خیلی احتیاج داشتم. واسه همین یه متد نوشتم که با رویداد OnClick مربوط به ComboBox فراخوانی بشه، چون مثلا وقتی توی یک فرم یک کمبو انتخاب تولیدکننده داشتم کنارش یک دکمه New گذاشته بودم و بعد از بسته شدن فرم تولیدکننده جدید باید اسم تولید کننده توی لیست می بود.
متد اینه :


Sub FillComboBox(ByRef Combo As ComboBox, ByVal TableName AsString, ByVal Field AsString)
Dim Conn As String = "DataSoruce=.;InitialCatalog=Northwind;IntegratedSe curity=True"
Conn.Open()
Dim DS AsNew DataSet
Dim Result AsNew DataTable("Result")
Dim CMD AsString = "Select " & Field & " From " & TableName & " Order By " & Field
Dim SDA As New SqlDataAdapter(CMD,Conn)
SDA.Fill(DS,"Result")
Dim Counter AsInteger = Result.Rows.Count - 1 'Zero Based Index
Combo.Items.Clear()

For i As Integer = 0 To Counter
Combo.Items.Add(Result.Rows(i).Item(0))
Next
EndSub


این هم رویدادش



PrivateSub cmoProducer_Click(ByVal sender AsObject, ByVal e As System.EventArgs) Handles cmoUserName.Click
FillComboBox(cmoProducers, "Producers", "Name")
EndSub