PDA

View Full Version : سوال: عدم ذخیره رکورد در دیتابیس



sdcsada
پنج شنبه 15 اردیبهشت 1390, 20:57 عصر
:متفکر:عدم ذخیره رکورد در دیتابیس
با سلام
من یک کد برای اینکه اطلاعات رو تو بانک ذخیره کنه نوشتم برنامه با موفقیت اجرا میشه و در آخر میشه خروجی ExecuteNonQuery یک میده یعنی یک رکورد ثبت کرده و توی دیتاگرید هم نمایش میده و هیچ مشکلی نیست.
ولی به محض اینکه برنامه از اجرا خارج میشه میبینم توی بانک هیچی ثبت نشده.
مشکل چیه.
مطمپنم جای دیگه ثبت نمیکنه چون وقتی دوباره اجرا میکنم بانک خالی است یا اگر دستی چیزی تو بانک بذارم تو برنامه دیده میشه. حتی اگر دوباره پس از رکورد اول همون اطلاعات را ثبت کنم ExecuteNonQuery خطای فیلد کلید نباید مقادیر متشابه داشته باشد را می ده ولی داده هایی که با برنامه خیره میکنم فقط تا زمانی که برنامه درحال اجرا است دیده میشه. قبلا این مشکل برام پیش نمی آمد الان موندم چیکار کنم. اینم کد من هست خیلی ممنون میشم اگر کمکم کنید در ضمن بانک را با خود C# ایجاد کردم.

private void button1_Click(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\db1.mdf;Integrated Security=True;User Instance=True");
SqlCommand com = new SqlCommand();
SqlDataAdapter da = new SqlDataAdapter();
com.Connection = conn;
com.CommandText = "INSERT INTO TB1(CODE,NAME) VALUES('" + textBox1.Text + "','" + textBox2.Text + "')";
conn.Open();
com.ExecuteNonQuery();
MessageBox.Show("ADDED");
conn.Close();
}

exlord
پنج شنبه 15 اردیبهشت 1390, 22:12 عصر
مشکل شما فکر میکنم از این باشه که هر بار موقع اجرا برنامه یه نصخه از فایل دیتا بیس به پوشه Bin\Debug کپی میشه و تغییرات رو ی اون انجام میشه و در اجرای دوباره برنامه بازم این عمل کپی انجام میشه و دیتابیس شامل اطلاعات ثبت شده در اجرای قبلی نیست ....
برای حل این فایل دیتا بیس رو توی یه پوشه توی پوشه Bin\Debug بزارین از اونجا مسیر دهی بکنین ...

sdcsada
پنج شنبه 15 اردیبهشت 1390, 23:26 عصر
مشکل شما فکر میکنم از این باشه که هر بار موقع اجرا برنامه یه نصخه از فایل دیتا بیس به پوشه Bin\Debug کپی میشه و تغییرات رو ی اون انجام میشه و در اجرای دوباره برنامه بازم این عمل کپی انجام میشه و دیتابیس شامل اطلاعات ثبت شده در اجرای قبلی نیست ....
برای حل این فایل دیتا بیس رو توی یه پوشه توی پوشه Bin\Debug بزارین از اونجا مسیر دهی بکنین ...

:تشویق::لبخندساده:بسیار ممنون از راه حل شما خودم هم ساعت 10:30 فهمیدم که چرا به این مشکل خوردم حالا فایل دیتابیس را در یه پوشه تو مسیر Bin\Debug قرار دادم و آدرس پوشه دیتابیس را هم به کانکشن اضافه کردم و گزینه copy to output directory مربوط به دیتابیس را هم با dont copy مقدار دادم.

SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\Database\db1.mdf;Integrated Security=True;User Instance=True");