PDA

View Full Version : سوال: چطور قبل از ذخیره اطلاعات دیتابیس را چک کنم



esagraphic
پنج شنبه 15 مرداد 1394, 12:11 عصر
سلام به همه اساتید گل
من یک برنامه دارم مال باسکوله همه مراحل دریافت وزن از دستگاه تموم شده و مشکلی نیست
حالا ازشما رهنمائی میخوام
من دو گزینه دارم یکی وزن پر و یکی وزن خالی
فکر کنید ماشن باردار یا پر میاد رو باسکول وقتی کاربر وزن پر را میزنه یک فرم میاد میگه شماره پلاک ماشنو بدی وقتی شماره پلاکو وارد میکنه میخوام کاری کنم بره از دیتابیس



select top 1 from table-name where truck no=12345 order by id des
به اون حالت بره اخرین ریکورد که مربوط به اون نمبر پلاک را بردار حالا اینجا چند کار انجام بده

ببین تو تیبل اگه فیلد وزن خالی null نبود و توش عددی بود و فیلد وزن پر خالی بود بیاد همه مشخصات انها را از قبیل اسم راننده و بقیقه مشخصات بریزه توی فرم بعدی که تکس باکس ها است و تنها همین وزن پر را داخل فیلد وزن پر ثبت کنه
در غیر اینصورت اگه به همون پلاک اخرین ریکورد را یافت اگه وزن پر اش null نبود و وزن داشت بیاد یک ریکورد جدید ذخیره کنه
در در مورد وزن خالی هم برعکسش است
حالا شما بگین چیطور این کارو راه بندازم ممنون همه شما

zayens
پنج شنبه 15 مرداد 1394, 12:51 عصر
اول یه سلکت بگیر و بریز توی دیتاویو
select top 1 * from table-name where truck_no=12345 order by id des

بعد باید چک کن Null هست یا نه و اگر بود اینسرت کنه و اگر نه همون سلکت را داخل تکست باکس ها بریزه


if (DataView1.Count == 0)
{
//Insert
}
else
{
//Fill TextBoxes like below code:
txtPelak.Text = DataView1[0]["Pelak"].ToString();
}

esagraphic
پنج شنبه 15 مرداد 1394, 13:09 عصر
اول یه سلکت بگیر و بریز توی دیتاویو
select top 1 * from table-name where truck_no=12345 order by id des

بعد باید چک کن Null هست یا نه و اگر بود اینسرت کنه و اگر نه همون سلکت را داخل تکست باکس ها بریزه


if (DataView1.Count == 0)
{
//Insert
}
else
{
//Fill TextBoxes like below code:
txtPelak.Text = DataView1[0]["Pelak"].ToString();
}





سلام اون count=0 شماره میکنه که موجود است یا نه ولی با همون پلاک قبلاً امکان داره زیاد موجود باشه کاری که من میخوام بکنم که اخرین ریکورد از همون پلاک را بگیره بعد ببینه که فیلد وزن خالی پر است یا خیر اگه فیلد وزن خالی null نبود و توش یک مقدار بود بیاد همه مشخصات را توی تکس باکس ها بریزه که بعد فیلد وزن پر را من آبدیت کنم اگر وزن خالی و وزن پر و یا وزن پر فیلدش null نبود بیاد انزیرت کنه و ها اگه میشه لطف کنید بگین چیطور توی دیتا ویو یک فیلد را چک کنم که null است یا خیر

zayens
پنج شنبه 15 مرداد 1394, 13:17 عصر
من نمیدونم مشکل شما دقیقا چی هست
وقتی یک دیتاویو ="" بود ینی تهی هست

نمیدونم آیا مشکلتون رونده؟
مشکلتون کد نویسیه؟
مشکلتون sql هست ؟

aliramazani
پنج شنبه 15 مرداد 1394, 13:21 عصر
شما خودتون دقیق گفتین میخواین چیکار کنید. در اصل الگوریتم را گفتین
حالا همینهایی که گفتین را بنویسین
اگرم نمیتونید بنویسید یه بار دیگه سعی کنید پایه برنامه نویسیتون را قوی تر کنید

esagraphic
پنج شنبه 15 مرداد 1394, 13:24 عصر
من نمیدونم مشکل شما دقیقا چی هست
وقتی یک دیتاویو ="" بود ینی تهی هست

نمیدونم آیا مشکلتون رونده؟
مشکلتون کد نویسیه؟
مشکلتون sql هست ؟

سلام مشکلم کد نویسی نمیدونم چیطور پیاده کنم کارمو شما حرف شما درست ببینید یک ماشین ده الی بیست بار میاد روی باسکول و وزن گیری میشه پلاکشو توی جدول ثب میکنه حالا وقتی من اخرین رکورد را بدست بیام باید بدونم که همین اخرین ریکورد آیا فیلد وزن خالی توش چیزی داره یا سفیده یا null است همین اگه null نبود و توش یک وزنی بود بیام اونارو ادیت کنم تنها فیلد وزن پر را خدا کنه مطلبو رسونده باشم

esagraphic
پنج شنبه 15 مرداد 1394, 13:26 عصر
شما خودتون دقیق گفتین میخواین چیکار کنید. در اصل الگوریتم را گفتین
حالا همینهایی که گفتین را بنویسین
اگرم نمیتونید بنویسید یه بار دیگه سعی کنید پایه برنامه نویسیتون را قوی تر کنید

ولا منم همینجاش گیر کردم چیطور بنویسم :افسرده:

aliramazani
پنج شنبه 15 مرداد 1394, 13:28 عصر
اگر null بود اطلاعات جدید ثبت بشه اگر دارای مقدار بود بشه ویرایش کرد؟

esagraphic
پنج شنبه 15 مرداد 1394, 13:36 عصر
اگر null بود اطلاعات جدید ثبت بشه اگر دارای مقدار بود بشه ویرایش کرد؟

بلی توی تیبل یک فیلد دارم به نام weightempty اگه این فیلد خالی بود و فیلد weightfull مساوی null نبود و توش عددی داشت اطلاعت جدید ثبت میشه
اما اگر فیلد weightempty خالی نبود و توش مقدار داشت میخوام مشخصات نام راننده و نوع بارش توی تکس باکس بریزم و فیلد weightfull را هم با وزن فعلی پر کنم همین

aliramazani
پنج شنبه 15 مرداد 1394, 13:47 عصر
یعنی اگه ماشین یه بار خالی باسکول بشه اطلاعات جدید ثبت بشه
اگه قبلا این ماشین یه بار خالی باسکول شده باشه بیاد بگه اسم راننده اینه و وزن با بار را بگیره...؟؟؟

esagraphic
پنج شنبه 15 مرداد 1394, 13:57 عصر
یعنی اگه ماشین یه بار خالی باسکول بشه اطلاعات جدید ثبت بشه
اگه قبلا این ماشین یه بار خالی باسکول شده باشه بیاد بگه اسم راننده اینه و وزن با بار را بگیره...؟؟؟

سلام ببینید این شکلی است
ماشین باردار میاد وزن میشه و بارش مثلاً است نفت و یا گاز وزنش پرش ثبت میشه 22140 کیلو بعد میره نفت و یا گاز که داری خالی میکنه بعد دوباره میاد رو باسکول و دوباره وزن میکنه حالا خالی بار اومد و خالی وزن میکنه وزنش باید توی فیلد وزن خالی ثبت بشه مثلاً میشه 15120 بعد اونو از وزن پر تفریق میکنیم خالصش میشه 7020 این شکلی
حالا مثلاً وقتی ماشین میاد وزن پر وزن میکنه نمبر پلاکش میره جستجو میشه اخرین ریکورد را میگیره بعد میبینه اگه فیلد وزن پر توش عددی بود و فیلد وزن خالی هم سفید بود به این معنی است که این موتر وزن خالیشو هنوز نگرفته وریکورد جدید ثبت میشه بعد همین عملیات برعکس توی وزن گیری خالی زمانی که میره بار خالی میکنه انجام میشه

esagraphic
پنج شنبه 15 مرداد 1394, 14:09 عصر
حالا شما فقط به من اینو بگین من این کیوری



select top 1 * from table-name where truck_no=12345 order by id des


را که اجرا کنم اطلاعاتو توی چی بریزم و چیطور چک کنم که کدام یک از فیلش مساوری به null است

aliramazani
پنج شنبه 15 مرداد 1394, 14:15 عصر
1. یه جدول درست میکنه به نام cars
2. یه جدول درست می کنی به نام bar

جدول ماشینها باید دارای فیلدهای id, name,number و ... باشد
جدول بار باید داری فیدلهای weight ,id_car, id,barname, car_weight,bar_weight و... باشد

خب حالا یه ماشینی با بار میاد و میره باسکول
شما شماره پلاکش را در تکست باکس بررسی میکنید:
1. این ماشین قبلا ثبت نشده ..... پس ابتدا از قسمت ثبت ماشین اونو ثبت کنید
2. این ماشین ثبت شده که در یک دیتاگرید ویوو باید بارهایی که تا حالا وزن کرده لیست بشن

خب حالا تو اون گرید ویوو لیست همه بارها هست و شما میبینید کدوم بار دارای وزن خالی هست. وقتی روش کلیک میکنید تکس باکسها باید آماده دریافت مقدار باشن که بر اساس شماره بارنامه اطلاعات را دریافت کنن.

خب یه مورد دیگه اینکه ماشین ثبت شده ولی هنوز بار و وزنش ثبت نشده و توی گرید ویو با اون شماره بارنامه چیزی وجود نداره که باید قسمتی تدارک ببینید تحت عنوان ثبت بار برای این ماشین با این پلاک


من واضح گفتم دقیقا همینکار را بکن
نشد بگو تا سر فرصت برات همینو طراحی کنم

esagraphic
پنج شنبه 15 مرداد 1394, 14:23 عصر
1. یه جدول درست میکنه به نام cars
2. یه جدول درست می کنی به نام bar

جدول ماشینها باید دارای فیلدهای id, name,number و ... باشد
جدول بار باید داری فیدلهای weight ,id_car, id,barname, car_weight,bar_weight و... باشد

خب حالا یه ماشینی با بار میاد و میره باسکول
شما شماره پلاکش را در تکست باکس بررسی میکنید:
1. این ماشین قبلا ثبت نشده ..... پس ابتدا از قسمت ثبت ماشین اونو ثبت کنید
2. این ماشین ثبت شده که در یک دیتاگرید ویوو باید بارهایی که تا حالا وزن کرده لیست بشن

خب حالا تو اون گرید ویوو لیست همه بارها هست و شما میبینید کدوم بار دارای وزن خالی هست. وقتی روش کلیک میکنید تکس باکسها باید آماده دریافت مقدار باشن که بر اساس شماره بارنامه اطلاعات را دریافت کنن.

خب یه مورد دیگه اینکه ماشین ثبت شده ولی هنوز بار و وزنش ثبت نشده و توی گرید ویو با اون شماره بارنامه چیزی وجود نداره که باید قسمتی تدارک ببینید تحت عنوان ثبت بار برای این ماشین با این پلاک


من واضح گفتم دقیقا همینکار را بکن
نشد بگو تا سر فرصت برات همینو طراحی کنم


من دقیقا همه این کارو کردم و میدونم که میخواهم چیکار کنم من سوالم اینه اون کیوری را اجرا کنم اطلاعتو تو چی بریزم نمیخوام توی Datagridview بریزم و اونو نمایش بدم در اصل وقتی وزن پر میزنه یک فرم باز میشه تنها نمبرپلت را میپرسه وقتی نمبر موتر را گرفت بعد بره چک کنه اون عملیات که من گفتم حالا شما بگید توی چی بریزم اطلاعات که از دیتابیس میگیرم و چیطور چک کنم که null است یا خیر و یا چیطور اون مقدار را بدست بیارم فرض کنید مقدا فیلد وزن خالی را میخوام توی String بریزم

aliramazani
پنج شنبه 15 مرداد 1394, 14:35 عصر
والا من که نفهمیدم چی میگی.

چی چی رو تو چی بریزی؟

با linq برات مینویسم:


var db = new LINQDataContext();
int id=db.program_tbls.Where(c=>c.plak=="123456" && c.weight=="").Select(c=>c.id);


میگه id اون باری که پلاکش 123456 و وزنش خالیه را پیدا کن بریز تو متغیر int id حالا با این عدد هر کاری میخوای بکن. کد را هم میتونی هر جور بخوای تغییر بدی..

یه چیزی بهت بگم.. اگه برنامه نویسی را بیس اش را بلد نیستی قبل از شروع پروژه پایه ات را قوی کن.
این برنامه انقدر سخت نیست واقعا.