الربط DataBindings يتم مرة واحدة في بداية التشغيل
واستخدمت BindingSource بدلا من CurrencyManager وربطت الادوات بها بدلا من ربطها بالجدول مباشرة
كود :
using System;
using System.Windows.Forms;
using System.Data;
using System.Data.OleDb;
using System.IO.Ports;
namespace Wiating_FullProgram
{
public partial class Form1 : Form
{
OleDbConnection cn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\EmpImg.mdb");
OleDbCommand cmd;
BindingSource Bs = new BindingSource();
OleDbDataAdapter Da;
DataTable Dt = new DataTable();
OleDbCommandBuilder Cmdb;
string sqlstr;
public Form1()
{
InitializeComponent();
Bs.DataSource = Dt;
txtCardNum.DataBindings.Add("Text", Bs, "IDnum");
CoBoxMatrial.DataBindings.Add("Text", Bs, "MatName");
txtNum.DataBindings.Add("Text", Bs, "Crdnum");
txtCostmerName.DataBindings.Add("Text", Bs, "Namee");
txtCostmerCar.DataBindings.Add("Text", Bs, "CarName");
txtCarNum.DataBindings.Add("Text", Bs, "Carnumber");
CoBoxCarType.DataBindings.Add("Text", Bs, "CarType");
CoBoxWaitName.DataBindings.Add("Text", Bs, "WitName");
txtCarLoad.DataBindings.Add("Text", Bs, "Qty_Total");
txtCarSpiace.DataBindings.Add("Text", Bs, "Qty_Spece");
txtRuslt.DataBindings.Add("Text", Bs, "Result");
Da = new OleDbDataAdapter("Select * From tbl1", cn);
Da.Fill(Dt);
}
//Form_Load
private void Form1_Load(object sender, EventArgs e)
{
SerialPort mySerialPort = new SerialPort("COM4", 9600, Parity.None, 7, StopBits.One);
mySerialPort.DataReceived += new SerialDataReceivedEventHandler(mySerialPort_DataReceived);
mySerialPort.Open();
}
//comEvReceive
private void mySerialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
SerialPort sp = (SerialPort)sender;
string data = sp.ReadExisting();
this.label1.BeginInvoke((MethodInvoker)delegate() { this.label1.Text = data; });
}
private void button1_Click(object sender, EventArgs e)
{
//Cm.EndCurrentEdit();
Bs.EndEdit();
Cmdb = new OleDbCommandBuilder(Da);
Da.Update(Dt);
MessageBox.Show("تمت الاضافة بنجاح", "الاضافة", MessageBoxButtons.OK, MessageBoxIcon.Information);
//lbl.Text = (Cm.Position + 1) + " / " + (Dt.Rows.Count);
}
private void btnReuslt_Click(object sender, EventArgs e)
{
int x, y, z;
x = Convert.ToInt32(txtCarLoad.Text);
y = Convert.ToInt32(txtCarSpiace.Text);
z = x - y;
txtRuslt.Text = Convert.ToString(z);
}
private void btnNew_Click(object sender, EventArgs e)
{
Bs.AddNew();
txtCardNum.Focus();
}
private void btnRecordNum_Click(object sender, EventArgs e)
{
OleDbCommand cmd = new OleDbCommand("Select count(*) from tbl1 ", cn);
cn.Open();
txtRecord.Text = cmd.ExecuteScalar().ToString();
cn.Close();
}
private void btnSearch_Click(object sender, EventArgs e)
{
Bs.Filter = "IDnum=" + txtSearch.Text;
}
}
}