PDA

View Full Version : سوال: مشکل در ارتباط با فراخوانی از بانک اطلاعاتی



forodo
شنبه 26 مرداد 1392, 13:58 عصر
من می خوام از بانک اطلاعاتی یک فیلد رو بخونه و اگر با تاریخ امروز یکی بود yes بده و اگه یکی نبود no بگه.
به دو صورت هم نوشتم.
اول:

try







{

GetMaxID();





OleDbConnection objconnection =





newOleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\\radman.mdb;Persist" +





" Security Info=True;Jet OLEDB:Database Password=123456");





OleDbDataAdapter objDataAdapter = newOleDbDataAdapter();





DataSet objDataSet = newDataSet();

objDataAdapter.SelectCommand =



newOleDbCommand();

objDataAdapter.SelectCommand.Connection = objconnection;

objDataAdapter.SelectCommand.CommandText =





@"SELECT DateDate

FROM tblPersonalHuzur, tblPersonal

WHERE tblPersonal.Username = '"








+ Program.Username + "'AND tblPersonal.ID = tblPersonalHuzur.PersonalID AND tblPersonalHuzur.PersonalHuzurID = " + MaxID;

objDataAdapter.SelectCommand.CommandType =



CommandType.Text;

objconnection.Open();

objDataAdapter.Fill(objDataSet,



"tblMosaede_tblPersonal");

objconnection.Close();

label2.Text = objDataSet.Tables[



"tblMosaede_tblPersonal"].Rows[0]["DateDate"].ToString();





if (label1.Text == label2.Text)

{





MessageBox.Show("Yes");

}





else

{





MessageBox.Show("No");

}



}





catch (Exception)

{

}



دوم:

try







{





OleDbConnection objconnection =





newOleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\\radman.mdb;Persist" +





" Security Info=True;Jet OLEDB:Database Password=123456");

 





OleDbCommand objcommand = newOleDbCommand();

objcommand.Connection = objconnection;

 

 

objcommand.CommandText =



@"SELECT *

FROM tblPersonalHuzur

WHERE tblPersonalHuzur.DateDate = '"








+ label1.Text + "'";

objconnection.Open();

objcommand.ExecuteNonQuery();





object number1 = objcommand.ExecuteScalar();

objconnection.Close();





if (number1 == DBNull.Value)

{





MessageBox.Show("Yes");

}





else

{





MessageBox.Show("No");

}

}





catch (Exception)

{

}

حالا جالب اینجاست که در قسمت اول دارم می بینم که جفت labelهام یک تاریخ رو نشون می دن ولی به من می گه نه اینا یکی نیستن.
نمی دونم چیکار کنم الان 3 ساعت هی چیزای مختلف رو چک می کنم ولی نمی شه.
لطفاً راهنمایی کنید.
با تشکر
در ضمن ببخشید کدها خرابه و به هم ریختس. وقتی اینجا می ندازم اینجوری می شه وگرنه تو ویژوال درسته.

arefba
شنبه 26 مرداد 1392, 14:14 عصر
فکر می کنم تو داری datetime رو مقایسه می کنی برای همین نتیجه بهت نمیده چون هر ثانیه که میگذره با datetime قبلیت که تو همون روزه مساوی نیست
توی بانک اطلاعاتیت فیلد datedate رو به date تبدیل کن نه datetime
و تو برنامه هم فقط تاریخ رو برای مقایسه استفاده کن نه تاریخ و زمان رو

forodo
شنبه 26 مرداد 1392, 15:31 عصر
فکر می کنم تو داری datetime رو مقایسه می کنی برای همین نتیجه بهت نمیده چون هر ثانیه که میگذره با datetime قبلیت که تو همون روزه مساوی نیست
توی بانک اطلاعاتیت فیلد datedate رو به date تبدیل کن نه datetime
و تو برنامه هم فقط تاریخ رو برای مقایسه استفاده کن نه تاریخ و زمان رو
خیلی ممنون از راهنماییتون.
مشکل اولم حل شد. اول تابع رو فراخوانی می کردم و بعد تاریخ رو از دیتابیس داخل لیبل می نداختم. به همین دلیل همیشه false بود.
دومی رو نمی دونم چرا جواب نمی ده.
خلاصه با اولی کارم راه افتاد.
تاریخ هام در دیتابیس به صورت رشته هستن چون با تاریخ شمسی کار می کنم.

arefba
شنبه 26 مرداد 1392, 15:58 عصر
این کارت منطقی نیست
این مقاله رو بخونه
با این کلاس همه دیتا تایم ها شمسی میشن و وقتی میرن تو دیتا بیس میلادی میشن اما وقتی از دیتا بیس سلکتشون میکنی برای تو شمسی نشون میده
http://www.codeproject.com/Tips/344290/Using-a-Persian-calender-in-NET-4

forodo
یک شنبه 27 مرداد 1392, 13:37 عصر
این کارت منطقی نیست
این مقاله رو بخونه
با این کلاس همه دیتا تایم ها شمسی میشن و وقتی میرن تو دیتا بیس میلادی میشن اما وقتی از دیتا بیس سلکتشون میکنی برای تو شمسی نشون میده
http://www.codeproject.com/Tips/344290/Using-a-Persian-calender-in-NET-4
می تونید اینو تحت ویندوز برنامه شو برام قرار بدید؟
اونی تو سایت هستش رو متوجه نمی شم و اون برای وب هست یا ویندوز هم میشه؟ چون من وقتی کدارو کپی کردم کلی ایراد گرفت که نمی دونستم چی هست؟