PDA

View Full Version : مشکل در Insert در SQL



پارسا کیانبخت
یک شنبه 13 دی 1388, 21:37 عصر
با عرض سلام خدمت همه ی دوستان.

من دارم با استفاده از C#‎ یک نرم افزار مدیریت پایگاه داده مینویسم اما به یه مشکلی برخورد کردم. من یه کلاس برای با اسم SQLClass برای کار با بانک اطلاعاتی نوشتم. که دارای یه متد Insert هست که اطلاعات مورد نظر رو درج میکنه. وقتی اطلاعات رو درج میکنم و دستور Select رو میزنم میبینم که اطلاعات درج شده. اما بعد از چند دقیقه (مثلا 10-20 دقیقه) یا بعد از اینکه یک بار ویژوال استودیو میبندم و باز میکنم متوجه میشم که اطلاعات درج شده پریده..!!

کد رو ببنید :


public void Insert(string Command, SqlConnection Connection)
{
SqlCommand MySqlCommand = new SqlCommand();
MySqlCommand.Connection = Connection;
MySqlCommand.CommandText = Command;

try
{
Connection.Open();
MySqlCommand.ExecuteNonQuery();
}
catch (Exception MyEx)
{
MessageBox.Show("Error Occured" + System.Environment.NewLine + MyEx.Message);
}
finally
{
Connection.Close();
}

ممنون میشم اگه راهنماییم کنید...

group45
یک شنبه 13 دی 1388, 22:07 عصر
سلام
آدرس دیتا بیسی که میخونه و میریزه رو چک کن ببین یکی هستن!!!

پارسا کیانبخت
یک شنبه 13 دی 1388, 22:20 عصر
من در تمام فرم ها و کلاس ها از عبارت زیر استفاده میکنم :


SqlConnection MyConnection = new SqlConnection(WindowsFormsApplication1.Properties. Settings.Default.TestDBConnection.ToString());

و در بخش Settings هم از Connection String زیر :


Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\TestDB.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True

دیتا بیسی که اطلاعات ازش درج میشه و ازش خونده میشه یکیه. چون همون لحظه که درج میکنم، رکورد جدید وجود داره. ولی بعد از مدتی میبینم که حذف شده و فقط رکورد هایی که به طور پیش فرض با خود SQL Server وارد کردم وجود داره.

group45
یک شنبه 13 دی 1388, 22:52 عصر
ببین کارت با اینا راه می افته؟



SqlCommand com = new SqlCommand();
com.CommandText = "INSERT INTO t2 (name,famil)"
+"VALUES(@name,@famil)";
com.Parameters.AddWithValue("@name", textBox1.Text);
com.Parameters.AddWithValue("@famil", textBox2.Text);
com.Connection = con;
con.Open();
result = com.ExecuteNonQuery();
con.Close();

با این کد دیتا گرد ویو رو رفرش کن بعد هر بار اینزرت یا آپدیت یا ...



public void load()
{
SqlDataAdapter sda = new SqlDataAdapter();
sda.SelectCommand = new SqlCommand();
sda.SelectCommand.Connection = con;
sda.SelectCommand.CommandText = "select * from t2";
DataTable dt = new DataTable();
sda.Fill(dt);
dataGridView1.DataSource = dt;
}

پارسا کیانبخت
دوشنبه 14 دی 1388, 20:49 عصر
مشکل از جای دیگه بود. حل شد.

مشخصه Copy To Output دیتابیس را بر روی Copy If Newerتنظیم کردم و مشکل برطرف شد.