|
|
|
C# (มือใหม่)รบกวนด้วยคับ ให้ textbox ดึงข้อมูลจากฐาน มาโชว์ใน Label ยังไงคับ |
|
|
|
|
|
|
|
แนะนำแบบนี้นะครับ
1. เพิ่ม bindingSource ลงในฟอร์ม
และเพิ่มโค้ดออกมาเป็นแบบนี้
Code (C#)
//ใช้ KeyDown เพื่อให้ user กด Enter ดีกว่าใช้ TextChanged ซึ่งจะหน่วงมากกว่า
private void textBox2_KeyDown(object sender, KeyEventArgs e)
{
if (string.IsNullOrEmpty(textBox2.Text)) return; // ทุกครั้งที่จะค้น ต้องมั่นใจว่ามี คำ หรือ ข้อมูลใน textbox เสมอ
if (e.KeyCode == Keys.Enter)
{
using (SqlConnection conn = new SqlConnection())
{
Config config = new Config();
string constring = config.ConnString;
conn.ConnectionString = constring;
conn.Open();
string sql = "SELECT Name,Department FROM tbMember WHERE IDMember = '" +
textBox1.Text.Trim() + "' ";
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(sql, conn);
da.Fill(ds, "Member");
//ตั้งค่า BindingSource
this.BindingSource1.DataMember = "Member";
this.BindingSource1.DataSource = ds;
//ตั้งค่า dataGridView
dataGridView1.DataSource = this.BindingSource1;
}
}
}
2. ตั้งค่า DataBindings ใน Label (จะตั้งในโหลด หรือ ใน InitializeComponent ก็ล่าย)
this.label1.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.BindingSource1, "Unit_1", true));
ศึกษาเพิ่มเติม
https://msdn.microsoft.com/en-us/library/system.windows.forms.control.databindings(v=vs.110).aspx
นอกจากนี้ยังมีวิธีที่ง่ายดายมากกว่านี้อีกคือ
แทนที่เราจะใช้ การ textBox2_KeyDown
แต่ให้ใช้ BindingSource1.Filter แทนไงละครับ
เมื่อรวมกับการ Binding ใน label หรือ textbox แล้ว
แค่ user พิมเสร็จก็ใช้ BindingSource1.Filter เพื่อค้น ไม่ต้องมานั่งเขียน
Code (C#)
using (SqlConnection conn = new SqlConnection())
{
Config config = new Config();
string constring = config.ConnString;
conn.ConnectionString = constring;
conn.Open();
string sql = "SELECT Name,Department FROM tbMember WHERE IDMember = '" +
textBox1.Text.Trim() + "' ";
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(sql, conn);
da.Fill(ds, "Member");
//ตั้งค่า BindingSource
this.BindingSource1.DataMember = "Member";
this.BindingSource1.DataSource = ds;
//ตั้งค่า dataGridView
dataGridView1.DataSource = this.BindingSource1;
}
โค้ด ยาวๆ อีกต่อไป
|
|
|
|
|
Date :
2017-12-20 13:50:59 |
By :
lamaka.tor |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
จะไม่ดึงค่ามาโชว์ ใน datagrid คับ
จะดึงข้อมูลมา โชว์ใน Label เลยคับ
ไม่ทราบว่าจะต้องเรียนแบบไหนคับ รบกวน ด้วยคับ ใน google ก็ หาไม่เจอ
|
|
|
|
|
Date :
2017-12-20 15:33:04 |
By :
destiny9999 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
พี่ TOR ผมลองใช้ DataBindings แต่มัน ไม่เจอ database -.-
|
|
|
|
|
Date :
2017-12-20 18:03:11 |
By :
destiny9999 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Date :
2017-12-21 14:32:27 |
By :
destiny9999 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไม่จำเป็นต้อง Bind ก็ได้ครับ ดึงข้อมูลจาก Datatable มาแปะได้เลย
ตัวอย่าง
Code (C#)
Label1.Text=ds.Tables[0].Rows[0]["Name"].ToString();
|
|
|
|
|
Date :
2017-12-21 16:44:31 |
By :
OOP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ได้แล้วคับ ท่าน ขอบคุณคับ ^^
|
|
|
|
|
Date :
2017-12-25 08:42:57 |
By :
destiny9999 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 00
|