درج (Insert) داده در جدول با C#
سلام
از C# تو VS2010 و بانک Sqlexpress استفاده میکنم
با کد زیر داده رو میخوام به جدول مربوطه در بانکم اضافه کنم. دستور هیچ خطایی نمیگیره، ولی هیچ داده ای هم به بانک اضافه نمیکنه
private void btnbuildregister_Click_1(object sender, EventArgs e) { SqlConnection objConnection = new SqlConnection(); string str = "Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\ord-95.mdf;Integrated Security=True;User Instance=True"; objConnection.ConnectionString = str; //SqlConnection("Data Source=.\\SQLEXPRESS; AttachDbFilename=" + Application.StartupPath + "\\ord-95.mdf; Integrated Security=True; Connect Timeout=30; User Instance=True"); SqlCommand objCommand = new SqlCommand(); objCommand.Connection = objConnection; objCommand.CommandText = @"insert into [build] " + "(buildname) " + "VALUES(@buildname)"; objCommand.Parameters.AddWithValue("@buildname", txtbuild.Text); objConnection.Open(); objCommand.ExecuteNonQuery(); objConnection.Close(); MessageBox.Show("ثبت با موفقیت انجام شد", "پیغام", MessageBoxButtons.OK, MessageBoxIcon.Information); lblbuild.Hide(); txtbuild.Hide(); txtbuild.Text = ""; btnbuildregister.Hide(); }
جالب اینجاست که وقتی با کد زیر جدول رو تو datagrideview نگاه میکنم داده ای که اضافه کردم رو نشون میده ولی اینم تا وقتی هست که از برنامه بیرون نیومده باشم.
private void showTabla_Load(object sender, EventArgs e) { SqlConnection con = new SqlConnection(); string str = "Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\ord-95.mdf;Integrated Security=True;User Instance=True"; con.ConnectionString = str; SqlCommand cmd = new SqlCommand(); cmd.Connection = con; cmd.CommandText = "select * from seller"; SqlDataAdapter da = new SqlDataAdapter(cmd); DataTable dt = new DataTable(); da.Fill(dt); dataGridView1.DataSource = dt; dataGridView1.Columns[0].HeaderCell.Value = "Created"; }
5 پاسخ
سلام به شما itpro ای عزیز.
هر وقت که شما برنامه رو دوباره build همه داده های بانک شما خالی میشه و بانک هم دوباره از اول ساخته میشه. کد شما مشکلی نداره فقط این مشکل sql express هست که بانک رو توی مسیر فایل اجرایی میسازه اینجوری میشه.
با سلام
شما ببین در خط 21 متد ExecuteNonQuery چه عددی رو بر می گردونه!
کسی نیست راه حل بده
سلام دوست عزیز راه حل اینه
روی بانک اطلاعاتی که داخل solution explorer هست کلیک راست کرده و propertiseرا بزنید سپس خاصیت copy to output directory را روی do not copy قرار بدید مشکل رفع میشه
خب راه حل چیه
چی کار باید بکنم تا این مشکل رفع بشه