PDA

View Full Version : سوال: خطا در هنگام وارد کردن تاریخ در Access



daniyaltjm
سه شنبه 20 مهر 1395, 15:43 عصر
سلام، من می خوام یک تاریخ میلادی رو وارد یک فیلد که از جنس Date/Time در Access بکنم ولی خطا میده ؟ تا اونجایی که میدونم تاریخ توی اکسس به صورت : #10/11/2016# ذخیره میشه و حتی به صورت دستی هم کار نمیکنه! کلا چندین روش رو امتحان کردم نشد.

public void InsertDaAcc(string strcm)
{
OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\Daniyal\Desktop\Acc.mdb");
OleDbCommand cm = new OleDbCommand(strcm,con);
cm.Parameters.AddWithValue("@Code",textBoxCode.Text);
cm.Parameters.AddWithValue("@Name", textBoxName.Text);
cm.Parameters.AddWithValue("@Nature", na);
cm.Parameters.AddWithValue("@Date", DateTime.Now.ToShortDateString());
con.Open();
cm.ExecuteNonQuery();
con.Close();
}

InsertDaAcc("insert into DaAccs(DaId,DaName,DateCreation,AccNature) values(@Code,@Name,@Date,@Nature)");

mrprestige
سه شنبه 20 مهر 1395, 16:35 عصر
سلام دوست من عزاداری هاتون قبول ؛ این به این خاطره که Access رو یه سری کلمات حساس هست و اون رو کلمات کلیدی تلقی میکنه و شما نمیتونید از کلمه Date استفاده کنید و به مشکل مواجه میشید ( میتونید نام دیگه انتخاب کنید برای ستون تاریخ مثلا tharikh )

daniyaltjm
سه شنبه 20 مهر 1395, 16:54 عصر
سلام دوست من عزاداری هاتون قبول ؛ این به این خاطره که Access رو یه سری کلمات حساس هست و اون رو کلمات کلیدی تلقی میکنه و شما نمیتونید از کلمه Date استفاده کنید و به مشکل مواجه میشید ( میتونید نام دیگه انتخاب کنید برای ستون تاریخ مثلا tharikh )

سلام، من برای فیلد تاریخ از نام DateCreation استفاده کردم و فکر کنم اگه از Date هم استفاده می کردم با [Date] مشکل حل میشد! ولی نمی دونم چرا خطا میده! توی سایت های انگلیسی هم سرچ کردم و همه روش ها رو چک کردم ولی بازم خطا میده فرمت فیلد تاریخ هم توی Access از نوع Short گذاشتم.:ناراحت:

متن خطا: .Additional information: Data type mismatch in criteria expression

Mahmoud.Afrad
سه شنبه 20 مهر 1395, 17:32 عصر
به متد ToShortDateString نیازی نیست.

mrprestige
سه شنبه 20 مهر 1395, 18:44 عصر
درسته ، و شک نکنید اگه شما Date رو به عنوان اسم ستون انتخاب میکردید با خطا مواجه میشدید شما نمیتونید در Access از کلمات کلیدی یا رزرو شده استفاده کنید به عنوان نام متغیر (منبع (https://support.microsoft.com/en-us/kb/286335)) به عنوان نام ستون استفاده کنید . ولی درباره خطاتون عرض کنم همونطور که از معن یخطا تون پیداست عدم تطابق نوع داده ای رو نشون میده طبق فرمایش جناب افراد نیازی به نوشتن اون متد نیست ، شما اگه میخواید فرمت ستون تاریختون رو تعیین کنید وارد قسمت design جدولتون بشید روی ستون تاریخ کلیک کرده توی قسمت InputMask گزینه short Date رو انتخاب کنید .

daniyaltjm
سه شنبه 20 مهر 1395, 21:49 عصر
درسته ، و شک نکنید اگه شما Date رو به عنوان اسم ستون انتخاب میکردید با خطا مواجه میشدید شما نمیتونید در Access از کلمات کلیدی یا رزرو شده استفاده کنید به عنوان نام متغیر (منبع (https://support.microsoft.com/en-us/kb/286335)) به عنوان نام ستون استفاده کنید . ولی درباره خطاتون عرض کنم همونطور که از معن یخطا تون پیداست عدم تطابق نوع داده ای رو نشون میده طبق فرمایش جناب افراد نیازی به نوشتن اون متد نیست ، شما اگه میخواید فرمت ستون تاریختون رو تعیین کنید وارد قسمت design جدولتون بشید روی ستون تاریخ کلیک کرده توی قسمت InputMask گزینه short Date رو انتخاب کنید .

بله درسته فقط در اصلاح جمله آخرتون بگم که برای مشخص کردن فرمت تاریخ از قسمت InputMask استفاده نمیشه از Format باید Short Date رو انتخاب کرد.

mrprestige
چهارشنبه 21 مهر 1395, 10:38 صبح
از inputMask هم میتونید استفاده کنی دوست من ، پس بزار تعریف اصولی از هردو رو براتون عرض کنم ، ببینید دوست من format یا همون شکل . شکلی رو که اکسس برای نمایش داده فیلد بکار می بره رو تعیین می کنه. اگه بخوام مثال بزنم به این صورت میشه که شما میتونی توی این قسمت تعیین کنید حرف اول فیلد بصورت $ نمایش داده بشه یا ... و اما inputMask یا همون قالبندی ورودی مون . در واقع نحوه ورود داده به فیلد را تعیین می کنیم مثلا اگر ما کد پرسنلی به شکل 5555*3-2 داشته باشیم می تونیم تعیین کنیم که کاربر موقع وارد کردن کد در توی این قسمت حتما باید در دومین کاراکتر خط فاصله و در سومین کاراکتر ستاره باشه . پس با این تفاصیل میتونیم هم از inputMask استفاده کنیم و یا format و اینکه شما فرمودید توی تاریخ inputMask استفاده نمیشه همچین چیزی نیست باید عرض کنم DataType هایی که میتونید از InputMask اون ها نیز استفاده کنید Text , Number , Date/Time , Currency هستن . امیدوارم موفق و پیروز و سلامت باشید