|
|
|
ถามเรื่องวิธีการใช้งาน DataBindings ครับ คือมันไม่สามารถผูกข้อมูลหลายๆชุด เข้ากับคอนโทรลตัวเดียวกันใช่ไหมครับ |
|
|
|
|
|
|
|
กรรม ผมสงสัย จริงๆ นะเนี้ย
แล้วถ้าจะยกเลิก DataBindings ที่ทำไว้
ต้องเขียนโปรแกรมแบบไหน ครับ +
|
|
|
|
|
Date :
2011-03-23 19:36:19 |
By :
plugantz |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผูกแบบไหนครับ ปกติทำที่ Query ก็น่่าจะได้น่ะครับ
|
|
|
|
|
Date :
2011-03-23 20:23:53 |
By :
webmaster |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (C#)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data; // 2 ตัวที่จะขาดไม่ได้ในการใช้งานฐานข้อมูล
using System.Data.OleDb; //
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Bison_v0._2
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
}
private void MainForm_Load(object sender, EventArgs e)
{
}
private DataSet _DataSet; //ประกาศตัวแปร Dataset เป็นแบบ fill
private void btnSearch_Click(object sender, EventArgs e)
{
string BusNum = txtNum.Text;
string Start = txtStart.Text;
string Terminal = txtTerminal.Text;
if ((BusNum == "") && (Start == "") && (Terminal == ""))
MessageBox.Show("กรุณากรอกรายละเอียดการค้นหา", "No Detail");
/*- - - - - - - - - - - - - - - - - -เชื่อมต่อฐานข้อมูล- - - - - - - - - - - - - - - - - */
string conStr = "Provider=Microsoft.Ace.OleDb.12.0;" +
@"Data Source=C:\Users\Plugfai\Documents\Visual Studio 2008\Projects\Bus_Aplication\Data\Bus Transport of Bangkok.accdb";
OleDbConnection conn = new OleDbConnection(conStr);
conn.Open();
_DataSet = new DataSet();
OleDbCommand cmd;
OleDbDataAdapter adapter;
string sql;
sql = "SELECT * FROM Bus_Lines WHERE Bus_Number=" + "'" + BusNum + "'";
cmd = new OleDbCommand(sql, conn);
adapter = new OleDbDataAdapter(cmd);
adapter.Fill(_DataSet, "BusData");
try
{
Show_DataBindings();
//txtName.Text = _DataSet.Tables["BusData"].Rows[0]["Bus_Name"].ToString();
//txtGo.Text = _DataSet.Tables["BusData"].Rows[0]["Ramble"].ToString();
//txtBack.Text = _DataSet.Tables["BusData"].Rows[0]["Way_Back"].ToString();
}
catch
{
MessageBox.Show("ไม่พบข้อมูล");
}
UpdateStatus();
conn.Close();
}
private void Show_DataBindings() // จะใช้ไม่ใช้ยังไม่รู้
{
txtName.DataBindings.Add("Text", _DataSet, "BusData.Bus_Name");
txtGo.DataBindings.Add("Text", _DataSet, "BusData.Ramble");
txtBack.DataBindings.Add("Text", _DataSet, "BusData.Way_Back");
}
private void UpdateStatus()
{
int Pos = this.BindingContext[_DataSet, "BusData"].Position + 1;
string Status = Pos.ToString() + " of " + _DataSet.Tables["BusData"].Rows.Count;
lblStatus.Text = Status;
}
private void btnBack_Click(object sender, EventArgs e)
{
int Pos = this.BindingContext[_DataSet, "BusData"].Position;
if (Pos == 0)
{
return;
}
else
{
this.BindingContext[_DataSet, "BusData"].Position -= 1;
}
UpdateStatus();
}
private void btnNext_Click(object sender, EventArgs e)
{
int Pos = this.BindingContext[_DataSet, "BusData"].Position;
int numRows = _DataSet.Tables["BusData"].Rows.Count;
if (Pos == (numRows - 1))
{
return;
}
else
{
this.BindingContext[_DataSet, "BusData"].Position += 1;
}
UpdateStatus();
}
}
}
|
|
|
|
|
Date :
2011-03-23 20:50:49 |
By :
plugantz |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คือว่า ในช่องหมายเลขสาย ถ้าผมกรอก เลข แล้ว คนหา มันจะแสดงข้อมูลดังภาพ
คราวนี้ผมก็กรอกอีกครั้ง แล้วมันก็ขึ้นข้อความที่ผมดัก error ไว้
ซึ่งที่ขึ้นว่าไม่มีข้อมูล เพราะตอนแรกผมดักไว้ว่า ถ้าโค้ดส่วนนี้ error คือไม่เจอข้อมูลใน DB
ซึ่งก็คือมันไม่สามารถ Search ได้ต่อเนื่องครับ !
ถ้าจะเซิสครั้งถัดไป ต้องปิดหน้าต่างโปรแกรมก่อน
ผมเลยเข้าใจว่ามันน่าจะเกี่ยวกับ DataBindings อ่ะครับ !
เพราะ ในส่วนโค้ดตอนแรกที่ผมเขียนไว้
Code (C#)
//txtName.Text = _DataSet.Tables["BusData"].Rows[0]["Bus_Name"].ToString();
059.
//txtGo.Text = _DataSet.Tables["BusData"].Rows[0]["Ramble"].ToString();
060.
//txtBack.Text = _DataSet.Tables["BusData"].Rows[0]["Way_Back"].ToString();
มันสามารถเซิสได้ต่อเนื่องตามปกติ แต่พอผมเปลี่ยนมาใช้ databindings กลับ Search ต่อเนื่องไม่ได้
|
ประวัติการแก้ไข 2011-03-23 21:00:06
|
|
|
|
Date :
2011-03-23 20:57:56 |
By :
plugantz |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ก่อนกดปุ่ม Search ให้เคลียร์ Databinding ก่อน ค่อยผูกใหม่
|
|
|
|
|
Date :
2011-03-24 14:36:27 |
By :
madoadza |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เคลียร์ ด้วยวิธีการใดครับ
พอแนะนำโค้ดให้ผมได้ ไหม !
|
|
|
|
|
Date :
2011-03-24 14:50:27 |
By :
plugantz |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ล้างการ Bindings ทำยังไงครับ พี่ หางอึ่ง !
|
|
|
|
|
Date :
2011-03-24 15:25:01 |
By :
plugantz |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ความจริง คุณควรจะเดาเองได้นะ
ว่าควรทำอย่างไร
txtName.DataBindings.Add -> เพิ่มการ Binding (อย่างนี้คุณยัง Binding เองได้เลย)
txtName.DataBindings.XXXX -> ไปหาเอาเถอะ อะไรที่แปลว่า ล้าง หรือเอาออก
|
|
|
|
|
Date :
2011-03-24 15:46:55 |
By :
หางอึ่ง |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แต่ถ้าจะใช้วิธีล้าง Binding แล้ว Binding ใหม่ (วิธีนี้ดูไม่น่ารักเลย)
ผมว่าใช้วิธีที่คุณ Remark มันจะดีกว่านะ
txtName.Text = _DataSet.Tables["BusData"].Rows[0]["Bus_Name"].ToString();
txtGo.Text = _DataSet.Tables["BusData"].Rows[0]["Ramble"].ToString();
txtBack.Text = _DataSet.Tables["BusData"].Rows[0]["Way_Back"].ToString();
|
|
|
|
|
Date :
2011-03-24 15:49:11 |
By :
หางอึ่ง |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คือผมเพิ่งเริ่มเล่น Visual อ่ะครับ
ตอนนี้ยังเปิดหนังสือทำควบคู่ไป
บางที่ก็นึกไม่ออก ว่าต้องทำอย่างไร
แต่ก็ต้องขอบคุณ สำหรับคำแนะนำครับ
เพราะบางอย่างในหนังสือ ก็ไม่ได้มีทุกอย่าง
อ่าน ภาษาอังกฤษ ใน help ยิ่งแล้วใหญ่เลย งงกว่าเดิมอีก ^ ^
|
|
|
|
|
Date :
2011-03-24 16:25:59 |
By :
plugantz |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|