PDA

View Full Version : Bind کردن یک TextBox



روح اله معینی زاده
سه شنبه 29 فروردین 1385, 16:02 عصر
سلام
چگونه یه Textbox رو باید به دیتابیس وصل کنم که بتوانم با Me.BindingContext در میان رکوردهای آن حرکت کنم؟ همه کارها هم با کد باشد.
یا
اشکال کدهای زیر رو بگید.


Dim con AsNew OleDb.OleDbConnection
Dim da AsNew OleDb.OleDbDataAdapter("", con)
Dim ds AsNew DataSet
Dim data_bind AsNew System.Windows.Forms.BindingSource

PrivateSub Btn_Load_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_Load.Click
con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=F:\Telephone\Telephone.mdb;Jet OLEDB:Database Password=20981144;"
Try
con.Open()
Catch ex As Exception
MsgBox(ex.ToString)
ExitSub
EndTry
If ds.Tables.Contains("HT") = FalseThen ds.Tables.Add("HT")
If ds.Tables("HT").Rows.Count <> 0 Then ds.Tables("HT").Clear()
da.SelectCommand.CommandText = "SELECT * FROM homes"
da.Fill(ds, "HT")
con.Close()
data_bind.DataSource = ds
data_bind.DataMember = "HT"
Me.BindingContext.Contains(data_bind)
Txt.DataBindings.Add(New Binding("Text", Me.data_bind, "Last_Name", True))
EndSub
PrivateSub Btn_F_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_F.Click
Me.BindingContext(ds, "HT").Position = 0
EndSub
PrivateSub Btn_p_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_p.Click
Me.BindingContext(ds, "HT").Position -= 1
EndSub
PrivateSub Btn_n_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_n.Click
Me.BindingContext(ds, "HT").Position += 1
EndSub
PrivateSub Btn_l_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_l.Click
Me.BindingContext(ds, "HT").Position = Me.BindingContext(ds, "HT").Count - 1
EndSub
EndClass

meandyouwith2003
سه شنبه 29 فروردین 1385, 20:23 عصر
TextBox1.DataBindings.Add("Text", Datasource, Datamember)

موفق باشی

zarrin_306
سه شنبه 29 فروردین 1385, 21:41 عصر
textbox1.databindings.add("text",dataset11,"authors.lname"
authors نام جدول میباشد
lname نوع پیوند میباشد

asilverisis
سه شنبه 29 فروردین 1385, 23:02 عصر
سلام
اینو تست کن !

روح اله معینی زاده
چهارشنبه 30 فروردین 1385, 16:21 عصر
با سلام خدمت دوستان

از توجهتون متشکرم.
1- جناب آقای زرین، با روش شما خطای "Child list for field Homes cannot be created" رو می ده و قابل استفاده نیست.
2- جناب asilverisis فایل شما رو هم دریافت و اجرا کردم که البته خطا داد و اجرا نشد (قسمت پر کردن دیتاست). البته مهم قسمت‌های مربوط به Bind کردن بود که اونا رو تنظیم کردم و جواب هم نداد.

دوستان شایان ذکر است با دستوراتی که در بالا نوشته‌ام، مقدار اولین رکورد در جعبه متن من (که به نام Txt است) ظاهر می‌شود اما با زدن کلیدهای طراحی شده برای حرکت در دیتاست، عمل حرکت انجام می‌شود (مقدار Position رو چک کردم و دیدم که تغییر می‌کنه) ولی مقدار داخل Txt بدون تغییر باقی می‌ماند؟! منتظر نظرات شما هستم.

با احترام- خدانگهدار

na3er-faraji
پنج شنبه 31 فروردین 1385, 08:02 صبح
فکر کنم این برنامه همون چیزی باشه که شما می خواید . فقط خیلی با عجله نوشتم شرمنده . یک کم قاطی پاتیه.

روح اله معینی زاده
پنج شنبه 31 فروردین 1385, 14:30 عصر
دوست گرامی جناب SWI و مابقی دوستان سلام

خطای برنامه شما هم دقیقاً مانند خطای برنامه دوستمون asilverisis است. بهتر بود اول برنامه ایشان را نگاه می کردید و بعد ... . باز هم از زحمتی که کشیده‌‌اید متشکرم.

با احترام- خدانگهدار

روح اله معینی زاده
پنج شنبه 31 فروردین 1385, 14:36 عصر
دوست گرامی جناب SWI و مابقی دوستان سلام

خطای برنامه شما هم دقیقاً مانند خطای برنامه دوستمون asilverisis است. بهتر اول برنامه ایشان را نگاه می کردید و بعد ... . باز هم از زحمتی که کشیده‌‌اید متشکرم.

با احترام- خدانگهدار

na3er-faraji
جمعه 01 اردیبهشت 1385, 05:59 صبح
با سلام مجدد
دوست عزیز من همین الان برنامه رو تست کردم . هیچ مشکلی نداشت و با 2005 هم نوشتم . به هر حال من برای بیند کردن از این کد استفاده می کنم که %100 هم جواب می ده .

TextBox1.DataBindings.Add("text", ds, "cities.name")

که اولی همیشه در مورد تکست باکس ها ثابته . دومی نام دیتاسته که قبلا پر شده و سومی هم نام جدول.فیلد منه . شاید مشکل از جای دیگه ای است . چون می بینید که همه دوستان با این کد دارند کار می کنند.

روح اله معینی زاده
دوشنبه 04 اردیبهشت 1385, 15:55 عصر
سلام خدمت دوستان

اشتباه رو درش آوردم. خطا در استفاده از BindingSource بود که باید از Binding استفاده می شد. دوستان نیز درست گفته و باید از حالت <Table>.<column> استفاده بشه. البته خطوط زیر رو هم حذف کردم و فقط از همان DS استفاده کردم (که دیتاست من بود).
Dim data_bind AsNew System.Windows.Forms.BindingSource
data_bind.DataSource = ds
data_bind.DataMember = "HT"
Me.BindingContext.Contains(data_bind)
و به طور کلی هر جا از متغیر data_bind استفاده کرده بودم آن را تغییر دادم و به جاش از ds استفاده کردم.
البته خط
Txt.DataBindings.Add(New Binding("Text", Me.data_bind, "Last_Name", True))
رو هم به
Txt.DataBindings.Add("Text", ds, "HT.Last_Name")
تبدیل کردم.

با تشکر از همه دوستان

با احترام- خدانگهدار