PDA

View Full Version : سوال: مشکل در درج سطر چدید و خطا null



vB.N3T
سه شنبه 23 آذر 1395, 16:33 عصر
سلام مهندسین عزیز
من یه نرم افزار دارم مینویسم برای ثبت ساعت ورود و خروج
با اول که کاربر واردم میشه ساعت ورودش میخوره
و فیلد ساعت خروج null هست
و بار دومی که لاگین میشه اینبار سطری که ساعت ورود خورده ویرایش میشه و فیلدی که null بوده ساعت خروج میخوره
تا اینحا همه چی درسته
درمرحله بعد اگر کارمند مرخصی ساعتی بگیره و باز لاگین کنه
طبیعتا باید سطر جدید درج بشه و ساعت ورود بخوره
اما این خطا رو دارم
اینم کدم


Tbl_Time nw = new Tbl_Time();
var select_time = from s in db.Tbl_Times where s.User_ID == txtid.Text select new { s.User_timeEnter };
if (select_time.Count() == 0)
{
nw.User_ID = txtid.Text;
nw.User_timeEnter = txtclockstart.Text;

nw.Date = dateTimeSelector1.Text;
db.Tbl_Times.InsertOnSubmit(nw);
db.SubmitChanges();
MessageBox.Show("Enter");

}
else
{

var select2 = (from s in db.Tbl_Times where s.User_ID==txtid.Text && s.User_timeOut == null select s).Single();

Tbl_Time nw2 = select2;
nw2.User_timeOut = txtclockstart.Text;
db.SubmitChanges();


}

Mahmoud.Afrad
سه شنبه 23 آذر 1395, 16:48 عصر
از متدهای SingleOrDefault و یا FirstOrDefault استفاده کنید و در if شرط را به صورت select_time == null بنویسید.
Tbl_Time select_time =
(from s in db.Tbl_Times
where s.User_ID == txtid.Text && s.User_timeOut == null
orderby s.User_timeEnter descending
select s).FirstOrDefault();
if (select_time == null)
{
select_time = new Tbl_Time();
select_time.User_ID = txtid.Text;
select_time.User_timeEnter = txtclockstart.Text;
select_time.Date = dateTimeSelector1.Text;
db.Tbl_Times.InsertOnSubmit(select_time);
db.SubmitChanges();
MessageBox.Show("Enter");
}
else
{
select_time.User_timeOut = txtclockstart.Text;
db.SubmitChanges();
}

vB.N3T
چهارشنبه 24 آذر 1395, 00:06 صبح
ممنون مهندس دقیقا درست شد
بی زحمت میتونید دلیل علمی شم بگید چرا کد من خطا داشت و زمانی که firstofdefult گذاشتیم درست شدش
که من در ذهنم باشه خیلی خیلی ممنونم