سلام دوستان من یک برنامه ای نوشتم و میخواهم اطلاعات را در آن ویرایش کنم از دستور زیر استفاده کردن ولی متاسفانه پیغام موفقیت در ثبت اطلاعات را میدهد ولی اطلاعات ثبت نمی شود و تغییر نمی کند . لطفا راهنمایی بفرمایید . ممنونم .
if (txtUsername.Text != "" && txtPass.Text != "")
{
OleDbConnection con = new OleDbConnection(ConnectionString);
cmd = new OleDbCommand("UPDATE Account SET A_user=@user,A_pass=@pass,A_name=@name,A_access=@access,A_event=@event where ID=@ID", con);
cmd.Parameters.AddWithValue("@ID", ID);
cmd.Parameters.AddWithValue("@user", txtUsername.Text);
cmd.Parameters.AddWithValue("@pass", txtPass.Text);
cmd.Parameters.AddWithValue("@name", txtName.Text);
cmd.Parameters.AddWithValue("@access", comboAccess.Text);
cmd.Parameters.AddWithValue("@event", txtEvent.Text);
con.Open();
cmd.ExecuteNonQuery();
MessageBox.Show("Record Updated Successfully");
con.Close();
DisplayData();
ClearData();
}
else
{
MessageBox.Show("Please Select Record to Update");
}
ظاهرا مشکلی نداره
ولی بزار توی try ببین چجوریه
این کار هم انجام دادم . متاسفانه باز هم نشد .
خیلی عجیبه . لطفا راهنمایی کنید ...
دیباگ کن ببین داده ها رو چی ارسال میکنه و ببین توی cach خطایی رو نمیده
هیچ خطایی رخ نمیده . چک کردم .
یکبار کل کد رو براتون میفرستم لطفا چک کنید :
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Data.OleDb; using System.IO; using System.Drawing.Imaging; namespace ArasbPishtaz { public partial class frmAdminAcc : Form { public frmAdminAcc() { InitializeComponent(); DisplayData(); } string ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath + "\\Data_Base.mdb"; OleDbCommand cmd; OleDbDataAdapter adapt; int ID = 0; //Display Data in DataGridView private void DisplayData() { OleDbConnection con = new OleDbConnection(ConnectionString); con.Open(); DataTable dt = new DataTable(); adapt = new OleDbDataAdapter("select * from Account", con); adapt.Fill(dt); dataGridView1.DataSource = dt; dataGridView1.Columns[0].Name = "ID"; dataGridView1.Columns[1].Name = "A_user"; dataGridView1.Columns[2].Name = "A_pass"; dataGridView1.Columns[3].Name = "A_name"; dataGridView1.Columns[4].Name = "A_access"; dataGridView1.Columns[5].Name = "A_pic"; dataGridView1.Columns[6].Name = "A_event"; dataGridView1.Columns[0].Width = 80; dataGridView1.Columns[1].Width = 140; dataGridView1.Columns[0].HeaderText = "شماره ثبت"; dataGridView1.Columns[1].HeaderText = "نام کاربری"; dataGridView1.Columns[2].HeaderText = "رمز عبور"; dataGridView1.Columns[3].HeaderText = "نام"; dataGridView1.Columns[4].HeaderText = "دسترسی"; dataGridView1.Columns[5].HeaderText = "تصویر"; dataGridView1.Columns[6].HeaderText = "یادداشت"; con.Close(); } //Clear Data private void ClearData() { txtUsername.Text = ""; txtPass.Text = ""; txtName.Text = ""; comboAccess.Text = ""; txtEvent.Text = ""; pictureBox1.Image = null; ID = 0; } //dataGridView1 RowHeaderMouseClick Event private void dataGridView1_RowHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e) { } private void button4_Click(object sender, EventArgs e) { this.Close(); } private void frmAdminAcc_Load(object sender, EventArgs e) { DisplayData(); ImageConverter converter = new ImageConverter(); } private void btnSave_Click(object sender, EventArgs e) { if (txtUsername.Text != "" && txtPass.Text != "") { OleDbConnection con = new OleDbConnection(ConnectionString); cmd = new OleDbCommand("Insert Into Account (A_user,A_pass,A_name,A_access,A_pic,A_event) Values (@1,@2,@3,@4,@5,@6)", con); con.Open(); cmd.Parameters.AddWithValue("@1", txtUsername.Text); cmd.Parameters.AddWithValue("@2", txtPass.Text); cmd.Parameters.AddWithValue("@3", txtName.Text); cmd.Parameters.AddWithValue("@4", comboAccess.Text); cmd.Parameters.AddWithValue("@5", ImageToByte(pictureBox1.Image)); cmd.Parameters.AddWithValue("@6", txtEvent.Text); cmd.ExecuteNonQuery(); con.Close(); MessageBox.Show("Record Inserted Successfully"); BindGrid(); ClearData(); } else { MessageBox.Show("Please Provide Details!"); } } public static byte[] ImageToByte(Image img) { ImageConverter converter = new ImageConverter(); return (byte[])converter.ConvertTo(img, typeof(byte[])); } void BindGrid() { dataGridView1.AutoGenerateColumns = false; OleDbConnection con = new OleDbConnection(ConnectionString); string query = "Select * From Account"; OleDbDataAdapter da = new OleDbDataAdapter(query, con); DataSet ds = new DataSet(); da.Fill(ds); dataGridView1.DataSource = ds.Tables[0].DefaultView; foreach (DataGridViewRow row in dataGridView1.Rows) { } } private void dataGridView1_RowHeaderMouseClick_1(object sender, DataGridViewCellMouseEventArgs e) { ID = Convert.ToInt32(dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString()); txtUsername.Text = dataGridView1.Rows[e.RowIndex].Cells[1].Value.ToString(); txtPass.Text = dataGridView1.Rows[e.RowIndex].Cells[2].Value.ToString(); txtName.Text = dataGridView1.Rows[e.RowIndex].Cells[3].Value.ToString(); comboAccess.Text = dataGridView1.Rows[e.RowIndex].Cells[4].Value.ToString(); pictureBox1.Image = GetDataToImage((byte[])(dataGridView1.Rows[e.RowIndex].Cells[5].Value)); txtEvent.Text = dataGridView1.Rows[e.RowIndex].Cells[6].Value.ToString(); } public Image GetDataToImage(byte[] pData) { try { ImageConverter imgConverter = new ImageConverter(); return imgConverter.ConvertFrom(pData) as Image; } catch (Exception ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return null; } } private void btnSelectPic_Click(object sender, EventArgs e) { OpenFileDialog op = new OpenFileDialog(); if (op.ShowDialog() == DialogResult.OK) { txtImage.Text = op.SafeFileName; pictureBox1.ImageLocation = op.FileName; } } private void btnDelete_Click(object sender, EventArgs e) { OleDbConnection OleDbConnection1 = new OleDbConnection(ConnectionString); OleDbCommand OleDbCommand1 = new OleDbCommand(); OleDbCommand1.CommandType = CommandType.Text; OleDbCommand1.Connection = OleDbConnection1; OleDbCommand1.CommandType = CommandType.Text; OleDbCommand1.CommandText = "DELETE FROM Account WHERE ID=" + ID; OleDbConnection1.Open(); int result = OleDbCommand1.ExecuteNonQuery(); OleDbConnection1.Close(); if (result > 0) { MessageBox.Show("کاربر مورد نظر با موفقیت حذف شد"); BindGrid(); } else { MessageBox.Show("خطا در حذف کاربر"); } } private void button1_Click(object sender, EventArgs e) { txtUsername.Text = ""; txtPass.Text = ""; txtName.Text = ""; txtEvent.Text = ""; pictureBox1.Image = null; } private void btnUpdate_Click(object sender, EventArgs e) { try { OleDbConnection con = new OleDbConnection(ConnectionString); cmd = new OleDbCommand("UPDATE Account SET A_user=@user,A_pass=@pass,A_name=@name,A_access=@access,A_event=@event where ID=@ID", con); cmd.Parameters.AddWithValue("@ID", ID); cmd.Parameters.AddWithValue("@user", txtUsername.Text); cmd.Parameters.AddWithValue("@pass", txtPass.Text); cmd.Parameters.AddWithValue("@name", txtName.Text); cmd.Parameters.AddWithValue("@access", comboAccess.Text); cmd.Parameters.AddWithValue("@event", txtEvent.Text); con.Open(); cmd.ExecuteNonQuery(); MessageBox.Show("Record Updated Successfully"); con.Close(); DisplayData(); ClearData(); } catch { MessageBox.Show("Please Select Record to Update"); } } } }
ظاهرا مشکلی نداره
ولی پروژه رو دارین از دیباگ استفاده کنین تا ببینین مشکل کجاست
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)