السلام عليكم و رحمة الله و بركاته
أحبائي,
هناك مشكلة أرقتني و جعلتني لا أنام الليل .. و يجب تسليم المشروع قريباً باذن الله
لدي مشروع أعمل عليه, و شارفت على الانتهاء, و يجب إضافة خاصية Save/Load للمشروع
المشروع بأكمله يعتمد على داتابيز من نوع Sqlite إلا بعض الـtextboxes و غيرها من الcontrols
لذا .. خطر ببالي أن أربط بقية العناصر مع table جديد في الداتابيز كي أستفيد من خاصية الـbinding و أفعل خاصية الـsave load
سأضع قبسات من الكود:
في التابع البناء للفورم
SQLiteConnection cn = new SQLiteConnection(@"Data Source="+ Var.pp + @"\Database.db;Version=3;");
SQLiteCommand cmd = new SQLiteCommand();
SQLiteDataAdapter da = new SQLiteDataAdapter();
DataSet ds = new DataSet();
BindingSource bs = new BindingSource();
public Form1()
{
.........
cmd.Connection = cn;
cn.Open(); cmd.CommandText = "begin"; cmd.ExecuteNonQuery();
cmd.CommandText = "delete from G_info"; cmd.ExecuteNonQuery();
cmd.CommandText = "insert into G_info (ID_n, BSPRNT, DAMP, ...............) values (.......)";
cmd.ExecuteNonQuery();
cmd.CommandText = "end"; cmd.ExecuteNonQuery(); cn.Close();
cn.Open(); cmd.CommandText = "begin"; cmd.ExecuteNonQuery();
da.SelectCommand = new SQLiteCommand("Select * From G_info", cn);
ds.Clear();
da.Fill(ds);
bs.DataSource = ds.Tables[0];
NSO.DataBindings.Add(new Binding("Value", bs, "NSO"));
............
cmd.CommandText = "end"; cmd.ExecuteNonQuery(); cn.Close();
}في زر الـSave
private void saveToolStripMenuItem_Click(object sender, EventArgs e)
{
cn.Open();
this.bs.EndEdit();
SQLiteCommandBuilder mySQLiteCommandBuilder = new SQLiteCommandBuilder(da);
mySQLiteCommandBuilder.GetUpdateCommand();
da.UpdateCommand = mySQLiteCommandBuilder.GetUpdateCommand();
this.da.Update(ds.Tables[0]);
if (Var.Load_file == null)
{
SaveFileDialog a = new SaveFileDialog();
a.FileName = title.Text;
a.Filter = "Text File|* .db";
if (a.ShowDialog() == DialogResult.OK)
{
string path = a.FileName;
System.IO.File.Copy(Var.pp + "\\Database.db", path, true);
}
Var.Load_file = a.FileName;
}
else
{
System.IO.File.Copy(Var.pp + "\\Database.db", Var.Load_file, true);
}
cn.Close();
}في الـload
private void loadToolStripMenuItem_Click(object sender, EventArgs e)
{
New1 result = new New1("Do you want to save changes to " + title.Text);
DialogResult a = result.ShowDialog();
if (a == DialogResult.Yes)
{
saveToolStripMenuItem_Click(sender, e);
}
if (a == DialogResult.OK)
{
saveAsToolStripMenuItem_Click(sender, e);
}
if (a == DialogResult.No)
{
//Var.Load_file = null;
//Drop All Tables || copy orginal to temp ..
}
if (a == DialogResult.Cancel)
{
}
OpenFileDialog a1 = new OpenFileDialog();
a1.Filter = "Text File|* .db";
if (a1.ShowDialog() == DialogResult.OK)
{
bs.ResumeBinding();
Var.Load_file = a1.FileName;
System.IO.File.Copy(Var.Load_file, Var.pp + "\\Database.db", true);
// cn.Open(); cmd.CommandText = "begin"; cmd.ExecuteNonQuery();
//////////////////////////////////////
da.SelectCommand = new SQLiteCommand("Select * From G_info", cn);
ds.Clear();
da.Fill(ds);
// MessageBox.Show(ds.Tables[0].Rows[0].ToString());
}
