PDA

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



bmvgod
یک شنبه 02 دی 1397, 14:19 عصر
سلام خدمت دوستان
یک جدول دارم که بصورت زیره:
149488
و کدی که برای ذخیره تاریخ و زمان استفاده میکنم بصورت زیره:

private void btnInsert_Click(object sender, EventArgs e)
{
var db = new LinqToTrazoDataContext();
CommoTable codeTbable = new CommoTable
{
InsertDate =Convert.ToDateTime( PerCale.GetYear(DateTime.Now)
+ PerCale.GetMonth(DateTime.Now) + PerCale.GetDayOfMonth(DateTime.Now)
+ DateTime.Now.TimeOfDay.Hours + ":" + DateTime.Now.TimeOfDay.Minutes
+ ":" + DateTime.Now.TimeOfDay.Seconds),
CommodCod = txtAbbrev.Text + "-" + txtCodCommodity.Text ,
CommodName = txtCommodName.Text,
CommodGenre = txtCommodGenre.Text,
CommodSize = txtCommodSize.Text,
CompanyName = txtCo.Text,
CommodNumb = Int16.Parse(txtCommodNume.Text),
CommodWeight = float.Parse(txtCommodWeight.Text),
CommodTotal = float.Parse(txtCommodTotal.Text),
UnitPrice = Int16.Parse(txtUnitPrice.Text),
Dicount = byte.Parse(txtDicount.Text),
Tax = Int16.Parse(txtTax.Text)
};
db.CommoTables.InsertOnSubmit(codeTbable);
db.SubmitChanges();
}
ولی با خطای زیر مواجه میشم:
149489

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

shahryars
یک شنبه 02 دی 1397, 14:28 عصر
تقویم فارسی برعکسه
اون میلادیه
میتونی برعکسش کنی یا به صورت string بریزیش توی دیتابیس
البته حدس من اینه که مشکلش این باشه

bmvgod
یک شنبه 02 دی 1397, 15:33 عصر
تقویم فارسی برعکسه
اون میلادیه
میتونی برعکسش کنی یا به صورت string بریزیش توی دیتابیس
البته حدس من اینه که مشکلش این باشه

به String نمیتشه تبدیل کرد، چون فیلد InsertDate دیتابیسم از نوع DateTime هست

Mahmoud.Afrad
یک شنبه 02 دی 1397, 17:16 عصر
چرا از میلادی به شمسی و از شمسی به میلادی تبدیل میکنید؟!!
راحت بنویسید
InsertDate = DateTime.Now,

bmvgod
یک شنبه 02 دی 1397, 21:53 عصر
میخوام تو دیتابیسم تاریخ بصورت شمسی ذخیره بشه و زمان هم داشته باشم، حالا کجای کارو دارم اشتباه مینویسم نمیدونم؟
میشه راهنماییم کنید؟
ممنون میشم
فیلد InsertDate در دیتابیسم از نوع DateTime است، نمیدونم این فرمت،تاریخ شمسی رو پشتیبانی میکنه یا نه؟

کد Insert م بصورت زیره:

private void btnInsert_Click(object sender, EventArgs e)
{
var db = new LinqToTrazoDataContext();
CommoTable codeTbable = new CommoTable
{
InsertDate =DateTime.Parse( txtDate.Text),
CommodCod = txtAbbrev.Text + "-" + txtCodCommodity.Text ,
CommodName = txtCommodName.Text,
CommodGenre = txtCommodGenre.Text,
CommodSize = txtCommodSize.Text,
CompanyName = txtCo.Text,
CommodNumb = Int16.Parse(txtCommodNume.Text),
CommodWeight = float.Parse(txtCommodWeight.Text),
CommodTotal = float.Parse(txtCommodTotal.Text),
UnitPrice = Int16.Parse(txtUnitPrice.Text),
Dicount = byte.Parse(txtDicount.Text),
Tax = Int16.Parse(txtTax.Text)
};
db.CommoTables.InsertOnSubmit(codeTbable);
db.SubmitChanges();
}
و کدی که در صفحه لودم تاریخ رو میخونه بصورت زیره:

PersianCalendar PerCale = new PersianCalendar();
private void frmAddCommodity_Load(object sender, EventArgs e)
{
string Date = PerCale.GetYear(DateTime.Now).ToString()
+ PerCale.GetMonth(DateTime.Now) + PerCale.GetDayOfMonth(DateTime.Now);
txtDate.Text = Date;
}

bmvgod
یک شنبه 02 دی 1397, 22:26 عصر
چرا از میلادی به شمسی و از شمسی به میلادی تبدیل میکنید؟!!
راحت بنویسید
InsertDate = DateTime.Now,

درمورد تاپیک شماره 5 میشه راهنماییم کنید؟
ممنون میشم

Mahmoud.Afrad
یک شنبه 02 دی 1397, 23:12 عصر
میخوام تو دیتابیسم تاریخ بصورت شمسی ذخیره بشه و زمان هم داشته باشم، حالا کجای کارو دارم اشتباه مینویسم نمیدونم؟
میشه راهنماییم کنید؟
ممنون میشم
....

به صورت میلادی ذخیره کنید. در زمان نمایش به کاربر به شمسی تبدیل کنید.

bmvgod
دوشنبه 03 دی 1397, 13:04 عصر
چرا از میلادی به شمسی و از شمسی به میلادی تبدیل میکنید؟!!
راحت بنویسید
InsertDate = DateTime.Now,

وقتی ازین کد استفاده میکنم به خطای زیر بر میخورم:

149496
با اینکه تو دیتابیسم فیلد insertDate از نوع datetime هست ولی نمیدونم چرا این خطارو بهم میده؟
میشه راهنماییم بفرمایید که کدمو چه تغییری بدم که خطام درست بشه؟
ممنون میشم راهنماییم کنید

Mahmoud.Afrad
دوشنبه 03 دی 1397, 17:17 عصر
وقتی ازین کد استفاده میکنم به خطای زیر بر میخورم:

149496
با اینکه تو دیتابیسم فیلد insertDate از نوع datetime هست ولی نمیدونم چرا این خطارو بهم میده؟
میشه راهنماییم بفرمایید که کدمو چه تغییری بدم که خطام درست بشه؟
ممنون میشم راهنماییم کنید

این خطا دیگه ربطی به تاریخ نداره. مربوط به یکی از تبدیل (Parse)ها هست. برای اینکه متوجه بشید خطا از کدام تبدیل هست، تبدیلها را در سطرهایی مجزا قبل از این سطر انجام بدید.

bmvgod
دوشنبه 03 دی 1397, 20:46 عصر
این خطا دیگه ربطی به تاریخ نداره. مربوط به یکی از تبدیل (Parse)ها هست. برای اینکه متوجه بشید خطا از کدام تبدیل هست، تبدیلها را در سطرهایی مجزا قبل از این سطر انجام بدید.

ولی وقتی خط InsertDate=DateTime.Now رو Command میکنم، برنامه به درستی کار میکنه. حتی اونجاهایی ک تبدیل Parse هست رو عدد صحیح وارد میکنم، برنامه باز درست کار میکنه

bmvgod
سه شنبه 04 دی 1397, 13:03 عصر
این خطا دیگه ربطی به تاریخ نداره. مربوط به یکی از تبدیل (Parse)ها هست. برای اینکه متوجه بشید خطا از کدام تبدیل هست، تبدیلها را در سطرهایی مجزا قبل از این سطر انجام بدید.

بسیار بسیار ممنون از راهنماییتون، برنامه داره درست کار میکنه

bmvgod
سه شنبه 04 دی 1397, 15:17 عصر
چرا از میلادی به شمسی و از شمسی به میلادی تبدیل میکنید؟!!
راحت بنویسید
InsertDate = DateTime.Now,

هیچ راهی وجود نداره که تاریخ شمسی در دیتابیس ذخیره بشه؟

MMR_1234
سه شنبه 04 دی 1397, 20:52 عصر
برای ثبت تاریخ بصورت شمسی باید اطلاعات رو بصورت کارکتری و از نوع Char ثبت کنی اونوقت نمی تونی بر روی اون کاری انجام بدی

bmvgod
سه شنبه 04 دی 1397, 21:30 عصر
برای ثبت تاریخ بصورت شمسی باید اطلاعات رو بصورت کارکتری و از نوع Char ثبت کنی اونوقت نمی تونی بر روی اون کاری انجام بدی

بسیار ممنون از راهنماییتون