0 امتیاز

با سلام

یه کد خیلی ساده نوشتم ولی در اجرا روی دیتابیس اکسسم مشکل دارم

از ارتباط بین بانک و برنامه اطمینان دارم و میدونم که از همون جدول mojod اطلاعات رو برنامه میخونه و بهم اطلاعات میده

ولی وقتی تعداد رو با sql که مینویسم، execute نمیشه روی جدول mojod

 

int count = int.Parse(dgrtest.Rows[0].Cells[2].Value.ToString());
                count = count + int.Parse(txtCount.Text);

                objCommand.CommandText = "update mojod set stock=@s where code =@z";
                objCommand.CommandType = CommandType.Text;
                objCommand.Connection = objConnection;

                objCommand.Parameters.AddWithValue("@s", count);
                objCommand.Parameters.AddWithValue("@z", int.Parse(txtCode.Text));

                objConnection.Open();
                int result1 = objCommand.ExecuteNonQuery();
                objConnection.Close();

                if (result1 > 0)
                {
                    MessageBox.Show("OK");
                }

اون قسمت result1 همش صفر هستش تو watch و execute انجام نمیشه.

نمیدونم دستور sql رو اشتباه نوشتم یا مشکل چیز دیگه هستش

حتی وقتی برای کنترل خواستم یه فیلد auto روی جدول mojod رو آپدیت کنم برنامه ایراد گرفت که حق آپدیت فیلد auto رو ندارم. یعنی برنامه دقیقا تا execute درست کار میکنه ولی این قسمت کد کار نمیکنه

نوع فیلد code و stock در اکسس از نوع number هستش

فیلد code هم primary key تعریف شده

ممنون میشم راهنمایی بفرمایید

شرمنده خیلی با جزئیات توضیح دادم و وقت دوستان گرفته شد.

 

1 پاسخ

+1 امتیاز

سلام

یکی دو مورد جا انداختی

کانکشن نداشتی

int count = int.Parse(dgrtest.Rows[0].Cells[2].Value.ToString());
            count = count + int.Parse(txtCount.Text);
            OleDbConnection cnn = new OleDbConnection("کانکشن استرینگ");
            OleDbCommand objCommand = new OleDbCommand("Update mojod set[stock] = @s where[code] = @z",cnn);
            //objCommand.CommandText = "Update mojod set [stock]=@s where [code]=@z";
            objCommand.Parameters.Clear();
            objCommand.CommandType = CommandType.Text;
            objCommand.Connection = cnn;

            objCommand.Parameters.AddWithValue("@s", count);
            objCommand.Parameters.AddWithValue("@z", int.Parse(txtCode.Text));

            objConnection.Open();
            int result1 = objCommand.ExecuteNonQuery();
            objConnection.Close();

            if (result1 > 0)
            {
                MessageBox.Show("OK");
            }

 

 

 

 

اینم امتحان کن تست گرفتم بالای رو تست نکردم

اینم بزار متغییر سراسری


 

اینم بزار متغییر سراسری
private int EditID = 0;





 int count = int.Parse(dgrtest.Rows[0].Cells[2].Value.ToString());
            count = count + int.Parse(txtCount.Text);
            OleDbConnection conn = new OleDbConnection(" کانکشن");
            OleDbCommand cmd = new OleDbCommand("Update mojod Set [stock]=@s,[code]=@z Where ID=" + EditID, conn);

            cmd.Parameters.AddWithValue("@s", count);
            cmd.Parameters.AddWithValue("@z", int.Parse(txtCode.Text));

            conn.Open();
          int result1=  cmd.ExecuteNonQuery();
            conn.Close();
            if (result1 > 0)
            {
                MessageBox.Show("OK");
            }

 

هرچقدر تلاش کردم درست نشد و اون لاین execute اجرا نمیشه روی دیتابیش حتی وقتی به جای @S و @z ها عدد هم قرار میدم آگدیت نمیکنه جدول اکسس رو

دوباره کدها رو میزارم شاید مشکلی داره که من متوجه نمیشم

        private void btnInsert_Click(object sender, EventArgs e)
        {
            OleDbCommand objCommand = new OleDbCommand();
            OleDbConnection objConnection = new OleDbConnection(ConnectionString);

            objCommand.Connection = objConnection;
            objCommand.CommandText = "insert into enter(code, name, model, [count], [date], anbarname, comment) values(@c, @n, @m, @o, @d, @a, @e)";
            objCommand.Parameters.AddWithValue("@c", txtCode.Text);
            objCommand.Parameters.AddWithValue("@n", txtName.Text);
            objCommand.Parameters.AddWithValue("@m", txtModel.Text);
            objCommand.Parameters.AddWithValue("@o", Convert.ToInt32(txtCount.Text));
            objCommand.Parameters.AddWithValue("@d", dtpPersian.Text);
            objCommand.Parameters.AddWithValue("@a", txtAnbarName.Text);
            objCommand.Parameters.AddWithValue("@e", txtComment.Text);

            objConnection.Open();
            int result = objCommand.ExecuteNonQuery();
            objConnection.Close();

            if (result > 0)
            {
                MessageBox.Show(txtName.Text + " به تعداد " + txtCount.Text + " ثبت شد ");
                SelectAllRecordsEnter();

                bool answer = CheckDuplicateCode(txtCode.Text);

                if (answer == false)
                {
                    OleDbCommand objCommandIF = new OleDbCommand();
                    OleDbConnection objConnectionIF = new OleDbConnection(ConnectionString);

                    objCommandIF.Connection = objConnectionIF;
                    objCommandIF.CommandText = "insert into mojod (code) values (@a)";
                    objCommandIF.Parameters.AddWithValue("@a", int.Parse(txtCode.Text));
                    
                    objConnectionIF.Open();
                    int sabt = objCommandIF.ExecuteNonQuery();
                    objConnectionIF.Close();

                    if (sabt > 0)
                    {
                        MessageBox.Show(" در جدول موجودی ثبت شد ");
                    }
                }
                
                DataGridView objDataGridViewMojod = new DataGridView();
                OleDbDataAdapter objDataAdaptor = new OleDbDataAdapter();
                objDataAdaptor.SelectCommand = new OleDbCommand();
                DataSet objDataSet = new DataSet();

                objDataAdaptor.SelectCommand.Connection = objConnection;
                objDataAdaptor.SelectCommand.CommandText = "select * from mojod where code = " + txtCode.Text;
                objDataAdaptor.SelectCommand.CommandType = CommandType.Text;
                objDataAdaptor.Fill(objDataSet, "m");

                dgrtest.DataSource = objDataSet;
                dgrtest.DataMember = "m";

                int count = int.Parse(dgrtest.Rows[0].Cells[2].Value.ToString());
                count = count + int.Parse(txtCount.Text);

                objCommand.CommandText = "UPDATE mojod SET [stock]=@s , [code]=@z WHERE [id] =" + EditId;

                objCommand.CommandType = CommandType.Text;
                objCommand.Connection = objConnection;

                objCommand.Parameters.Clear();
                objCommand.Parameters.AddWithValue("@s", count);
                objCommand.Parameters.AddWithValue("@z", int.Parse(txtCode.Text));

                objConnection.Open();
                int result1= objCommand.ExecuteNonQuery();
                objConnection.Close();

                if (result1 > 0)
                {
                    MessageBox.Show("OK");
                }
تو قسمت رنگی مشکل داره برنامه به خصوص در execute
دستور آپدیت که مشکلی نداره نه؟


                objDataAdaptor.SelectCommand.Connection = objConnection;
                objDataAdaptor.SelectCommand.CommandText = "select * from mojod where code = " + txtCode.Text;
                objDataAdaptor.SelectCommand.CommandType = CommandType.Text;
                objDataAdaptor.Fill(objDataSet, "m");

                dgrtest.DataSource = objDataSet;
                dgrtest.DataMember = "m";






            }
            else
            {
                MessageBox.Show(" عدم انجام فرآیند ثبت ");
            }

        }

 

توسط (246 امتیاز) 1 6
سورس رو بزار بررسی کنم
توسط (7,164 امتیاز) 4 7 141
سوال جدید

2,337 سوال

2,871 پاسخ

3,725 دیدگاه

3,921 کاربر

دسته بندی ها

...