PDA

View Full Version : مبتدی: جمع مقدار ذخيره شده در بانك با مبلغ



mori5858
چهارشنبه 13 شهریور 1392, 22:58 عصر
سلام به همه
من دوتا جدول دارم يكي مشخصات شخص رو نگه ميداره و يه فيلد مبلغ داره
حالا ميخوام مثلا يه مقدار رو بهش اضافه يا ازش كم كنم جاهايي كه كدش توي جدول اصلي با كدي كه توي اين جدول وارد كردم يكي هستن
يني بايد اول فيلد متناظر با اين جدول رو پيدا كنم بعد اين مقدار رو با ستون مبلغ اون جمع يا ازش كم كنم
اما بلد نيستم بايد چيكار كنم ممنون ميشم اگه راهنمايي كنين

sadeghjun
پنج شنبه 14 شهریور 1392, 00:18 صبح
سلام دوست عزیز
سوالت واضح نیست!
جدولت در دیتابیس هست؟؟ منظور از جدول تیبل های دیتابیسه؟ اگه هست چه دیتابیسی؟ SQL یا Access و ... ؟؟

mori5858
پنج شنبه 14 شهریور 1392, 10:43 صبح
سلام دوست عزیز
سوالت واضح نیست!
جدولت در دیتابیس هست؟؟ منظور از جدول تیبل های دیتابیسه؟ اگه هست چه دیتابیسی؟ SQL یا Access و ... ؟؟

آره منظورم همون Table هستش. از بانك SQL استفاده ميكنم

systam
پنج شنبه 14 شهریور 1392, 11:13 صبح
سلام
این کار یه edit ساده است
توی سایت بجو پیدا میکنی

hamid_0341
پنج شنبه 14 شهریور 1392, 11:16 صبح
ببین اگه بخوای با لینکیو این کار انجام بدی من یه سمپل کد گزاشتم ببین چجوریه !!
البته به این سادگیا نمیفهمی !!
Linq.DataClasses1DataContext db = new Linq.DataClasses1DataContext();
var query = from qry in db.Customer_tbls
where qry.id ==Convert.ToInt32( p)
select qry;
foreach (var item in query)
{
item.Addr = Addr_txt.Text;
item.CuCode = Moshtari_code.Text;
item.CuName = Moshtari_name.Text;
item.Mob = Convert.ToDecimal(mob_mas.Text);
item.Tel = Convert.ToDecimal(Tel_mas.Text);

}
db.SubmitChanges();

mori5858
پنج شنبه 14 شهریور 1392, 11:40 صبح
سلام
این کار یه edit ساده است
توی سایت بجو پیدا میکنی

آره اديتش ساده اس اما نياز به كوئري داره كه بتونه فيلد متناظر با اين رو توي Table ديگه پيدا كنه بعد اين مقدار رو با اون جمع كنه

sadeghjun
پنج شنبه 14 شهریور 1392, 11:42 صبح
سلام
اینجور که من فهمیدم شما میخواید یه برنامه مثلا واسه یه مغازه دار بنویسید که هر دفعه که جنس خرید به مقدار قبلی اضافه یا اگر پول داد از اون کم کنید.
1 - شما نیاز دارید که ابتدا شخص رو تو لیستتون پیدا کنید---> Search
2 -سپس اونو تغییر بدین. حالا یا اضافه یا کم ---> Update
خیلی راحته
من یه تاپیک زدم که یه سورس برنامه دفترچه تلفن رو تو اون گذاشتم. هم با پایگاه Access و هم Sql

ورود به تاپیک (http://barnamenevis.org/showthread.php?411255-%DB%8C%D9%87-%D9%BE%D8%B1%D9%88%DA%98%D9%87-%D8%B3%D8%A7%D8%AF%D9%87-%D8%AC%D9%87%D8%AA-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%DA%A9%D8%A7%D8%B1-%D8%A8%D8%A7-%D8%AF%DB%8C%D8%AA%D8%A7%D8%A8%DB%8C%D8%B3-(%D8%AF%D8%B1%D8%AC-%D8%8C-%D8%AD%D8%B0%D9%81%D8%8C-%D8%A2%D9%BE%D8%AF%DB%8C%D8%AA-%D9%88-%D8%AC%D8%B3%D8%AA%D8%AC%D9%88))

mori5858
پنج شنبه 14 شهریور 1392, 11:43 صبح
ببین اگه بخوای با لینکیو این کار انجام بدی من یه سمپل کد گزاشتم ببین چجوریه !!
البته به این سادگیا نمیفهمی !!
Linq.DataClasses1DataContext db = new Linq.DataClasses1DataContext();
var query = from qry in db.Customer_tbls
where qry.id ==Convert.ToInt32( p)
select qry;
foreach (var item in query)
{
item.Addr = Addr_txt.Text;
item.CuCode = Moshtari_code.Text;
item.CuName = Moshtari_name.Text;
item.Mob = Convert.ToDecimal(mob_mas.Text);
item.Tel = Convert.ToDecimal(Tel_mas.Text);

}
db.SubmitChanges();

يخورده فهميدم چي به چيه
اول با كوئري ميره توي اون يكي جدول پيدا ميكنه بعد با يه حلقه اين مقدار هارو جايگزين ميكنه
اما من ميخوام فقط ستون مبلغش با اين مقدار جديد جمع يا كم بشه
ميشه يخورده در اين مورد توضيح بدي :بوس:

mori5858
پنج شنبه 14 شهریور 1392, 11:52 صبح
سلام
اینجور که من فهمیدم شما میخواید یه برنامه مثلا واسه یه مغازه دار بنویسید که هر دفعه که جنس خرید به مقدار قبلی اضافه یا اگر پول داد از اون کم کنید.
1 - شما نیاز دارید که ابتدا شخص رو تو لیستتون پیدا کنید---> Search
2 - ُپس اونو تغییر بدین. حالا یا اضافه یا کم ---> Update
خیلی راحته
من یه تاپیک زدم که یه سورس برنامه دفترچه تلفن رو تو اون گذاشتم. هم با پایگاه Access و هم Sql

ورود به تاپیک (http://barnamenevis.org/showthread.php?411255-%DB%8C%D9%87-%D9%BE%D8%B1%D9%88%DA%98%D9%87-%D8%B3%D8%A7%D8%AF%D9%87-%D8%AC%D9%87%D8%AA-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%DA%A9%D8%A7%D8%B1-%D8%A8%D8%A7-%D8%AF%DB%8C%D8%AA%D8%A7%D8%A8%DB%8C%D8%B3-(%D8%AF%D8%B1%D8%AC-%D8%8C-%D8%AD%D8%B0%D9%81%D8%8C-%D8%A2%D9%BE%D8%AF%DB%8C%D8%AA-%D9%88-%D8%AC%D8%B3%D8%AA%D8%AC%D9%88))

آره يه همچين چيزي ميخوام
اين برنامه كه گذاشتي به فريم ورك خطا ميده. من فريم ورك 4 نصب دارم. اما ميگه حتما بايد 2 باشه

mori5858
پنج شنبه 14 شهریور 1392, 12:17 عصر
يه همچين كوئري نوشتم نميدونم روش كارم درسته يا نه


var query= (from obj in db.tblHesabs
where obj.ShomareHesab == Convert.ToInt32( dtGvBardasht.CurrentRow.Cells[1].Value)
select obj.Mablagh);
query = query + Convert.ToDecimal(dtGvBardasht.CurrentRow.Cells[6].Value);



اما خطاي Operator '+' cannot be applied to operands of type 'System.Linq.IQueryable<decimal?>' and 'decimal' ميده
كسي ميتونه راهنمايي كنه؟ :ناراحت:

hamid_0341
پنج شنبه 14 شهریور 1392, 12:46 عصر
يه همچين كوئري نوشتم نميدونم روش كارم درسته يا نه


var query= (from obj in db.tblHesabs
where obj.ShomareHesab == Convert.ToInt32( dtGvBardasht.CurrentRow.Cells[1].Value)
select obj.Mablagh);
query = query + Convert.ToDecimal(dtGvBardasht.CurrentRow.Cells[6].Value);



اما خطاي Operator '+' cannot be applied to operands of type 'System.Linq.IQueryable<decimal?>' and 'decimal' ميده
كسي ميتونه راهنمايي كنه؟ :ناراحت:

اشتباه کردی !!!
اسم اون فیلد که میخوای توی دیتابس این عدد باهاش جمع شه چیه ؟؟؟

hamid_0341
پنج شنبه 14 شهریور 1392, 12:51 عصر
بیا اینجوری نوشتم بفهمی !!!

var query= (from obj in db.tblHesabs
where obj.ShomareHesab == Convert.ToInt32( dtGvBardasht.CurrentRow.Cells[1].Value)
select obj.Mablagh);
foreach (var item in query )
{
int y = item.your;
int g = Convert.ToDecimal(dtGvBardasht.CurrentRow.Cells[6].Value);
item.your = y + g ;

}
db.SubmitChanges();

mori5858
پنج شنبه 14 شهریور 1392, 13:00 عصر
اشتباه کردی !!!
اسم اون فیلد که میخوای توی دیتابس این عدد باهاش جمع شه چیه ؟؟؟

اسم فيلدم مبلغ هستش

mori5858
پنج شنبه 14 شهریور 1392, 13:00 عصر
بیا اینجوری نوشتم بفهمی !!!

var query= (from obj in db.tblHesabs
where obj.ShomareHesab == Convert.ToInt32( dtGvBardasht.CurrentRow.Cells[1].Value)
select obj.Mablagh);
foreach (var item in query )
{
int y = item.your;
int g = Convert.ToDecimal(dtGvBardasht.CurrentRow.Cells[6].Value);
item.your = y + g ;

}
db.SubmitChanges();

your چيه؟ اينو نميشناسه

hamid_0341
پنج شنبه 14 شهریور 1392, 13:22 عصر
your چيه؟ اينو نميشناسه
منظورم فیلدت بود به جای your مبلغ خودتو بزار که توی بانک هست!!!

mori5858
پنج شنبه 14 شهریور 1392, 14:58 عصر
منظورم فیلدت بود به جای your مبلغ خودتو بزار که توی بانک هست!!!


به كلمه query داخل حلقه foreach خطا ميگيره.
Exception has been thrown by the target of an invocation

hamid_0341
شنبه 16 شهریور 1392, 09:12 صبح
اصلا db داری ؟!

mori5858
شنبه 16 شهریور 1392, 09:49 صبح
اصلا db داری ؟!
آره db دارم

hamid_0341
شنبه 16 شهریور 1392, 10:17 صبح
کد مشکلی نداره !!
توی تیبلت Key داری ؟!

salargham
شنبه 16 شهریور 1392, 12:24 عصر
مراجعه کن به این تاپیک
اینجا (http://barnamenevis.org/showthread.php?418012-%DA%86%DA%AF%D9%88%D9%86%D9%87-%DA%86%D9%86%D8%AF-%D8%B9%D8%AF%D8%AF-%D8%AF%D8%B1-%D8%AF%DB%8C%D8%AA%D8%A7-%DA%AF%D8%B1%DB%8C%D8%AF-%D9%88%DB%8C%D9%88-%D8%B1%D9%88-%D8%A8%D8%A7%D9%87%D9%85-%D8%AC%D9%85%D8%B9-%D9%88-%D8%AF%D8%B1-%DB%8C%DA%A9-%D8%AA%DA%A9%D8%B3-%D8%A8%D8%A7%DA%A9%D8%B3-%D8%A8%D9%87-%D9%86%D9%85%D8%A7%DB%8C%D8%B4-%D8%A8%DA%AF%D8%B0%D8%A7%D8%B1%DB%8C%D9%85%D8%9F&p=1869505#post1869505)

mori5858
شنبه 16 شهریور 1392, 13:06 عصر
کد مشکلی نداره !!
توی تیبلت Key داری ؟!

آره دارم
اما روش كار رو عوض كردم مشكل حل شد
به جاي اينكه مقدار اون رو مستقيم با يه مقدار جمع كنم مقدارش رو ريختم داخل متغير، متغير رو جمع كردم دوباره مقدار متغير رو ريختم داخل بانك
ديگه نياز به كوئري و حلقه foreach هم نداره ديگه :لبخند:

Aalibeigi
دوشنبه 15 مهر 1392, 11:50 صبح
سلام
ببینیم وقتی مینویسی db.namejadvals به این خطا میده؟
اگه به این خطا میده using system.linq رو اضافه کن.

Mahmoud.Afrad
دوشنبه 15 مهر 1392, 12:51 عصر
خود obj رو با SingleOrDefault سلکت کن. مشخصه رو تغییر بدید و ذخیره کنید. اما باید بگم اینجور اطلاعات محاسباتی رو ذخیره نمیکنن بلکه هر زمان نیاز بود محاسبه میکنن.

var query = (from obj in db.tblHesabs
where obj.ShomareHesab == Convert.ToInt32(dtGvBardasht.CurrentRow.Cells[1].Value)
select obj).SingleOrDefault();
if (query != null)
{
query.Mablagh += Convert.ToDecimal(dtGvBardasht.CurrentRow.Cells[6].Value);
db.SubmitChanges();
}