The problem is "after inserting a data using linq2sql & do submit changes , I cant find the data in database " I will explain more :
first here’s my DB design :

I made sure that I got primary keys for auto insert
I made sure that the data context is in the same path as my .mdb file lies
I used server explorer in VS2010 to check for the DB data
Here’s the function I use to insert a simple data:
public static bool add_contractor(string name,string ssn, string address)
{
Contractor co = new Contractor();
co.co_address = address;
co.co_name = name;
co.co_ssn = ssn;
db.Contractors.InsertOnSubmit(co);
try
{
db.SubmitChanges();
}
catch (Exception)
{
return false;
}
return true;
}
I did debugging & checked for the function , I got no error on submitting & the data should be submitted .
While I’m running the [program & using the following function to get the data from the table "contractor" :
public static Contractor[] get_contractors()
{
var ret = from p in db.Contractors
select p;
return ret.ToArray<Contractor>();
}
then displaying it I found the data I inserted … great till now ,
I go to server explorer & check for the data but I don’t find it …. strange huh
I use the function again & it tells me that the data I inserted exists….
The moment I close my program & re run it I dont find the data I inserted .
You mentioned you are using an mdb file, if it is set to copy always, every time you debug it will overwrite it. Hence no data when you run it again.
Try placing the file outside the project and point your connection string to that, see if the data persists.