السلام عليكم و رحمة الله و بركاته
اخواني,
أخوكم في ورطة, عليه تسليم مشروع برمجي بعد فترة قريبة, و حدثت مشكلة..
ألا و هي, أن المستخدم بعد الانتهاء من تعديل بيانات بـForm التعديل, لا تتعدل البيانات في الداتابيز!
المشكلة أنني متأكد تماماً أن البيانات تصبح محدّثة وقت التعديل, و الدليل أن المستخدم حينما يرجع للوراء بالضغط على previous يرى بياناته المحدّثة
و لكن! .. حينما يخرج من الفورم, تصبح البيانات كلها صفر "ماعدا الـID-key-"
سأضع لكم الكود مختصراً لتوضيح كيف عملت الـbinding
ملاحظة: أنا أعلم أنني لو وضعت query update سيحدث ما أريد,
لكن أليست الbinding للعرض و التحديث أيضاً ؟!! فكيف تُعرض البيانات المحدّثة للمستخدم عند التراجع previous و لا تُعرض في النهاية بعد اغلاق الفورم؟!!!
namespace Sample
{
public partial class Edit_thing : Form
{
SqlConnection cn = new SqlConnection(@"Connection_string");
SqlCommand cmd = new SqlCommand();
SqlDataAdapter da = new SqlDataAdapter();
DataSet ds = new DataSet();
BindingSource bs = new BindingSource();
decimal total;
int i = 0;
public Edit_thing()
{
InitializeComponent();
}
public Edit_thing(decimal a)
{
InitializeComponent();
total = a;
int size1 = Convert.ToInt32(total);
}
private void Add_thing_Load(object sender, EventArgs e)
{
cmd.Connection = cn;
cn.Open();
da.SelectCommand = new SqlCommand("Select * From tb1", cn);
ds.Clear();
da.Fill(ds);
bs.DataSource = ds.Tables[0];
FC.DataBindings.Add(new Binding("Text", bs, "FC"));
cn.Close();
label6.Text = "type Number: " + (bs.Position +1) +" of " + total.ToString();
}
private void button1_Click(object sender, EventArgs e)
{
bs.MovePrevious();
label6.Text = "type Number: " + (bs.Position + 1) + " of " + total.ToString();
button_23.Text = "Next";
}
private void button_23_Click(object sender, EventArgs e)
{
bs.MoveNext();
label6.Text = "type Number: " + (bs.Position + 1) + " of " + total.ToString();
if (button_23.Text == "Finish")
this.Close();
if (bs.Position + 1 == total)
button_23.Text = "Finish";
}
}
}جزاكم الله خيراً