PDA

View Full Version : ارتباط بین textbox ها



samira3
سه شنبه 05 خرداد 1388, 12:01 عصر
سلام
من دارم یه فرم طراحی می کنم که تووش چند تا Text box داره می خوام وقتی کاربر یه شماره رو وارد یکی از Textbox ها میکنه اطلاعات مربوط به اون شماره در بقیه textbox ها نمایش داده بشه!
بانک اطلاعتیمم Access هست.
میشه کمک کنید آیا؟

adinochestva
سه شنبه 05 خرداد 1388, 12:05 عصر
با sqlcommand و اطلاعات رو fill کن تو باقی tb ها

samira3
سه شنبه 05 خرداد 1388, 13:17 عصر
با sqlcommand و اطلاعات رو fill کن تو باقی tb ها

میشه یه مثال بزنی لطفا؟

Mani_rf
سه شنبه 05 خرداد 1388, 16:22 عصر
با سلام.
بهترین راه برای انجام این کار اینه که تو رخداد OnChange ،TextBox کدی بنویسی که برات فیلد های متناسب با TextBox ها را فراخوانی کنه


Private Sub Text1_OnChange(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Text1.Change



Dim Connection As OleDbConnection = New OleDbConnection("آدرس کانکشنت")
Dim DataReader As OleDbDataReader
Dim Command As OleDbCommand = New OleDbCommand("Select فیلدها From نام جدول Where شرایط", Connection)
Command.CommandType = CommandType.Text

Connection.Open()


DataReader = Command.ExecuteReader(CommandBehavior.SingleResult )


While DataReader.Read()
Text1= DataReader(0).ToString.Trim
Text2= DataReader(1).ToString.Trim
Text3= DataReader(2).ToString.Trim

End While

end Sub


فقط نام جدول، نام فیلد ها ، شرط جستجو و آدرس کانکشن دیتا بیس را اضافا کن و کد را به نسبت برنامه ات تغییر بده.

من بیشنهاد می کنم به جای TextBox ازComboBoxبرای اولین آیتم یا آیتمی که قراره اطلاعات ثابت را بگیره استفاده کنی.
امید وارم کارت را راه بی اندازد.

samira3
سه شنبه 05 خرداد 1388, 18:11 عصر
با سلام.
بهترین راه برای انجام این کار اینه که تو رخداد OnChange ،TextBox کدی بنویسی که برات فیلد های متناسب با TextBox ها را فراخوانی کنه
[/RIGHT]
[/LEFT]

این error رو میده:عصبانی++::عصبانی++:
ExecuteReader: Connection property has not been initialized.
میشه یه برنامه برام بزارین ببینم اشکال کارم کجاست

adinochestva
سه شنبه 05 خرداد 1388, 18:21 عصر
این آدرس را مشاهده کنید :
http://www.homeandlearn.co.uk/NET/nets12p1.html

samira3
سه شنبه 05 خرداد 1388, 23:12 عصر
معذرت می خوام مشکل من سورس کد یه قسمت از برنامه هستش
می خوام بدونم چی کار کنم وقتی یه textboxo پر میکنم اطلاعات تو بقیه textbox ها نمایش داده بشه!
واسه همینم یه مثال می خوام که بفهمم کجای کارم اشتباه بوده:ناراحت:

Mani_rf
چهارشنبه 06 خرداد 1388, 16:32 عصر
کد SQL که به کار بردی کلا مشکل داره :
تو اسم جداول فاصله مجاز نیست ،‌اسم جدول را چک کن.
بعد از WHERE نیازی به نوشتن نام جدول نیست .
بعد از Kala= کتیشن را ببند ،‌ یک کاراکتر &‌ بگذار تا محتویات TExtBox را به کد SQL که نوشتی پیوند دهد

من اینطوری تغییرش دادم



Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged

Dim cnn As OleDb.OleDbConnection
Dim Command As New OleDb.OleDbCommand
Dim DataReader As OleDb.OleDbDataReader

cnn = New OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\Visual Studio 2005\Projects\Soft Eng Project\Soft Eng Project\project.mdb")
Dim SQL As String = "SELECT * FROM kala_info WHERE kala=" & Me.TextBox1.Text

Command = New OleDb.OleDbCommand(SQL, cnn)
Command.CommandType = CommandType.Text
Command.Parameters.Add("Name", Data.OleDb.OleDbType.VarChar, 10).Value = Me.TextBox1.Text()
cnn.Open()
DataReader = Command.ExecuteReader

If DataReader.HasRows Then

While DataReader.Read()
Me.TextBox3.Text = DataReader(0).ToString.Trim
Me.TextBox4.Text = DataReader(1).ToString.Trim
End While

Else
MsgBox("رکوردی پیدا نشد")
End If
DataReader.Close()
CNN.Close()
End Sub


(این کد بالا رو همینجوری تو VB.Net کپی کن ببینش، انجا بهم ریخته نشون میده.)



من در همه برنامه هام از این امکان استفاده می کنم. می تونی تو سایت Http://doostanshop.com/Restaurant بری برنامه را دانلود کنی نمونشو بیبینی . اگه موفق نشدی دیتا بیس و فرمی که می خوای توش ای کار رو بکونی را برام میل کن تا شنبه عصر برات درستش می کنم.

samira3
پنج شنبه 14 خرداد 1388, 16:18 عصر
سلا م
به این که سایت بود
vvill_smith@yahoo.com
اگه میل تون بدین ممنون میشم

Mani_rf
شنبه 16 خرداد 1388, 16:59 عصر
این کد را تو KeyPress تکس باکست کپی کن تا موقع فشرده شدن Enter بقیه اطلاعات را از دیتابیس بخونه. تو دیتابیس هم بجای همه کاراکتر فاصله آندرلاین بگذار.





If e.KeyChar = Chr(Keys.Enter) Then
If TextBox1.Text = String.Empty Then Exit Sub

Dim cnn As OleDb.OleDbConnection = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "\Database.mdb")
Dim SQL As String = "SELECT name_kala,vahede_kala,gheimate_vahed FROM kala_info WHERE Id_kala=" & Val(TextBox1.Text)
Dim Command As OleDb.OleDbCommand = New OleDb.OleDbCommand(SQL, cnn)

cnn.Open()
Command.CommandType = CommandType.Text
Dim DataReader As OleDb.OleDbDataReader = Command.ExecuteReader(CommandBehavior.SingleRow)

If DataReader.HasRows Then
While DataReader.Read()
ComboBox1.Text = DataReader(0).ToString.Trim
TextBox3.Text = DataReader(1).ToString.Trim
TextBox4.Text = DataReader(2).ToString.Trim
End While
Else
MsgBox("رکوردی پیدا نشد")
End If

cnn.Close()
End If





:لبخند: