forodo
پنج شنبه 19 تیر 1393, 18:31 عصر
سلام
من یه Setup ساختم از برنامه ام که داخلش فایل exe و فایل آیکون برنامه و فایل Access که بانک اطلاعاتیم می باشد قرار دارد.
وقتی که میخوام داخل بانک چیزی رو ثبت کنم اروره زیر رو نشون می ده. جالب اینه که قبلش بررسی میشه که آیا این کلمه تکراری هست یا نه که درست کار می کنه و این یعنی به بانک وصل میشه ولی وقتی می خوام داخل بانک کلمه ای رو اضافه کنم اروره زیر رو می ده.
با خود ویژوال که برنامه رو اجرا می کنم مشکلی نداره و حتی با exe داخل فولدر Debug برنامه هم اجرا می کنم مشکلی نداره.
چه کنم؟؟؟
http://up.iranfilm187.com/images/54519987662057376403.png
این هم متن ارور:
************** Exception Text **************
System.Data.OleDb.OleDbException (0x80004005): Operation must use an updateable query.
at System.Data.OleDb.OleDbCommand.ExecuteCommandTextE rrorHandling(OleDbHResult hr)
at System.Data.OleDb.OleDbCommand.ExecuteCommandTextF orSingleResult(tagDBPARAMS dbParams, Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteCommandText( Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteCommand(Comm andBehavior behavior, Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteReaderIntern al(CommandBehavior behavior, String method)
at System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
at LitnerBox.Form1.btnAdd_Click(Object sender, EventArgs e)
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventAr gs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.O nMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.W ndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
این هم کدهای ثبت اطلاعات داخل بانک:
OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\\Litner.mdb");
OleDbCommand com = new OleDbCommand();
OleDbDataAdapter da = new OleDbDataAdapter();
DataSet ds = new DataSet();
private void btnAdd_Click(object sender, EventArgs e)
{
ds.Clear(); // پاک کردن دیتاست
if (txtWord.Text.Trim() == "" && rtxt.Text.Trim() == "")
{
MessageBox.Show("ابتدا کنترلهای مربوطه را پر نمایید", "ثبت اطلاعات", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
if (NoRepeat()) // بررسی تکراری نبودن کلمه
{
com.Connection = con;
com.CommandType = CommandType.Text;
com.CommandText = @"INSERT INTO tblLitner
(Word, WordMean, WordLevel)
VALUES
(@Word, @WordMean, @WordLevel)";
com.Parameters.Clear();
com.Parameters.AddWithValue("@Word", txtWord.Text.ToLower());
com.Parameters.AddWithValue("@WordMean", rtxt.Text);
com.Parameters.AddWithValue("@WordLevel", "1");
con.Open();
com.ExecuteNonQuery();
con.Close();
MessageBox.Show("اطلاعات با موفقیت ثبت شد", "ثبت اطلاعات", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
MessageBox.Show("این کلمه تکراری است", "کلمه تکراری", MessageBoxButtons.OK, MessageBoxIcon.Warning);
txtWord.Text = rtxt.Text = "";
txtWord.Focus();
return;
}
txtWord.Text = rtxt.Text = "";
}
من یه Setup ساختم از برنامه ام که داخلش فایل exe و فایل آیکون برنامه و فایل Access که بانک اطلاعاتیم می باشد قرار دارد.
وقتی که میخوام داخل بانک چیزی رو ثبت کنم اروره زیر رو نشون می ده. جالب اینه که قبلش بررسی میشه که آیا این کلمه تکراری هست یا نه که درست کار می کنه و این یعنی به بانک وصل میشه ولی وقتی می خوام داخل بانک کلمه ای رو اضافه کنم اروره زیر رو می ده.
با خود ویژوال که برنامه رو اجرا می کنم مشکلی نداره و حتی با exe داخل فولدر Debug برنامه هم اجرا می کنم مشکلی نداره.
چه کنم؟؟؟
http://up.iranfilm187.com/images/54519987662057376403.png
این هم متن ارور:
************** Exception Text **************
System.Data.OleDb.OleDbException (0x80004005): Operation must use an updateable query.
at System.Data.OleDb.OleDbCommand.ExecuteCommandTextE rrorHandling(OleDbHResult hr)
at System.Data.OleDb.OleDbCommand.ExecuteCommandTextF orSingleResult(tagDBPARAMS dbParams, Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteCommandText( Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteCommand(Comm andBehavior behavior, Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteReaderIntern al(CommandBehavior behavior, String method)
at System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
at LitnerBox.Form1.btnAdd_Click(Object sender, EventArgs e)
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventAr gs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.O nMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.W ndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
این هم کدهای ثبت اطلاعات داخل بانک:
OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\\Litner.mdb");
OleDbCommand com = new OleDbCommand();
OleDbDataAdapter da = new OleDbDataAdapter();
DataSet ds = new DataSet();
private void btnAdd_Click(object sender, EventArgs e)
{
ds.Clear(); // پاک کردن دیتاست
if (txtWord.Text.Trim() == "" && rtxt.Text.Trim() == "")
{
MessageBox.Show("ابتدا کنترلهای مربوطه را پر نمایید", "ثبت اطلاعات", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
if (NoRepeat()) // بررسی تکراری نبودن کلمه
{
com.Connection = con;
com.CommandType = CommandType.Text;
com.CommandText = @"INSERT INTO tblLitner
(Word, WordMean, WordLevel)
VALUES
(@Word, @WordMean, @WordLevel)";
com.Parameters.Clear();
com.Parameters.AddWithValue("@Word", txtWord.Text.ToLower());
com.Parameters.AddWithValue("@WordMean", rtxt.Text);
com.Parameters.AddWithValue("@WordLevel", "1");
con.Open();
com.ExecuteNonQuery();
con.Close();
MessageBox.Show("اطلاعات با موفقیت ثبت شد", "ثبت اطلاعات", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
MessageBox.Show("این کلمه تکراری است", "کلمه تکراری", MessageBoxButtons.OK, MessageBoxIcon.Warning);
txtWord.Text = rtxt.Text = "";
txtWord.Focus();
return;
}
txtWord.Text = rtxt.Text = "";
}