نقل قول: کم کردن مقدار از یک فیلد
شما ابتدا باید مقدار فیلد داخل جدول رو select کنی و در ادامه ازش کم کنی و دوباره Update کنید .
نقل قول: کم کردن مقدار از یک فیلد
من نمیفهمم دستور selecto کجا بنویسم میشه کد منو ویرایش کنید
نقل قول: کم کردن مقدار از یک فیلد
try
{
int b = int.Parse(fi.Text);
int a = int.Parse(maj.Text);
maj.Text = (a + b).ToString();
dataGridView1.Rows.Add(code.Text, name.Text, fi.Text);
//باقی مانده
OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12. 0;Data Source=" + Application.StartupPath + "\\Lebas.accdb");
OleDbCommand cmd = new OleDbCommand("", con);
string a1="Select num From leabs where code="+code;
cmd.CommandText=a1;
con.Open();
int cuurval=int.Parse(cmd.ExecuteScalar());
cuurval-=1;
a1 = "Update lebas set num ="+cuurval+" where code=" + code.Text;
cmd.CommandText = a1;
con.Close();
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
catch
{
MessageBox.Show(" مشکلی روی داده دوباره امتحان کنید", "Eror");
}
نقل قول: کم کردن مقدار از یک فیلد
این syntax eror میده int cuurval=int.Parse(cmd.ExecuteScalar()); این قسمت اشتباهه
نقل قول: کم کردن مقدار از یک فیلد
نقل قول: کم کردن مقدار از یک فیلد
نقل قول: کم کردن مقدار از یک فیلد
در برنامه هاي حسابداري فيلدي بنام موجودي در جدول ديتا بيس ايجاد نميشه . اين فيلد در اثر جمع و تفريق فاكتورهاي خريد و فروش از كالاي خاص طي دوره با انضمام موجودي اول دوره بصورت فيلد واسط ظاهر ميشه.
كدهايي رو كه نوشتيد لطفا داخل تگ مربوطه (#C) قرار بديد ، طوريكه شما نوشتيد خيلي ناخوانا و نا منظم هستند
نقل قول: کم کردن مقدار از یک فیلد
try
{
int b = int.Parse(fi.Text);
int a = int.Parse(maj.Text);
maj.Text = (a + b).ToString();
dataGridView1.Rows.Add(code.Text, name.Text, fi.Text);
//باقی مانده
OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12. 0;Data Source=" + Application.StartupPath + "\\Lebas.accdb");
OleDbCommand cmd = new OleDbCommand("", con);
string a1 = "Update lebas set num =num-" + 1.ToString() + "where code=" + code.Text;
cmd.CommandText = a1;
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
catch
{
MessageBox.Show(" مشکلی روی داده دوباره امتحان کنید", "Eror");
}
نقل قول: کم کردن مقدار از یک فیلد
من قبلا تو sql این کارو کردم نمیدونم چرا تو اکسس نمیشه
نقل قول: کم کردن مقدار از یک فیلد
int cuurval=int.Parse(cmd.ExecuteScalar().ToString());
نقل قول: کم کردن مقدار از یک فیلد
syntax یر طرف شد
ولی کار نمیکنه بازم run time میده
نقل قول: کم کردن مقدار از یک فیلد
همانطور که دوستمون ferankyy گفتن ابتدا اون فیلد رو فراخوانی کنید و نیاز نیست تو بانک ،مقدار کم یا زیاد کنید، بعد عملیات لازم رو روش انجام بدید وسپس فیلد مورد نظر آپدیت کنید.
نقل قول: کم کردن مقدار از یک فیلد
من اینکارو کردم دستور سلکت رو هم همونطور که گفتن وارد کردم ولی برنامه باز eror میده
نقل قول: کم کردن مقدار از یک فیلد
نقل قول:
نوشته شده توسط
sirmohsen
سلام دوستان من برنامه ای با C# و بانک اکسس نوشتم حالا میخوام وقتی یک جنس فروخته میشه از مقدار کلش تو اکسس کم بشه این دستورم نوشتم ولی eror میده لطفا کمک کنید
try
{
int b = int.Parse(fi.Text);
int a = int.Parse(maj.Text);
maj.Text = (a + b).ToString();
dataGridView1.Rows.Add(code.Text, name.Text, fi.Text);
//باقی مانده
OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12. 0;Data Source=" + Application.StartupPath + "\\Lebas.accdb");
OleDbCommand cmd = new OleDbCommand("", con);
string a1 = "Update lebas set num =num-" + 1.ToString() + "where code=" + code.Text;
cmd.CommandText = a1;
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
catch
{
MessageBox.Show(" مشکلی روی داده دوباره امتحان کنید", "Eror");
}
نیاز به دو کار نیست:
1. استفاده از دستور select، برای اینکه اول مقدار رو بدست بیاری و بعد یکی ازش کم کنی و بعد از اون در Update استفاده کنی
2. یکی هم 1.ToString()
شما داخل دستور Update این کار رو انجام بده:
UPDATE Lebas SET num=num-1 WHERE code=1;
دوتا پیشنهاد:
1.موقع استفاده از try catch اول خودت خطاها رو ببین چیه (بفهمی سمت db مشکل هست یا برنامه)، بعد اگه نخواستی کار خاصی روی خطاها انجام بدی یک پیغام کلی بذار! مثلا اینجا شما نمی دونی err که بهت میده چیه.
2.دستورات Sql رو با استفاده از پارامترها ایجاد کن و یا از String.Format استفاده کن تا رشته ای که در کد دیده و ایجاد میشه خواناتر و کم خطاتر بشه
مثلا:String.Format("UPDATE Lebas SET num=num-{0} WHERE code={1}", tedad, code)
موفق باشید!