PDA

View Full Version : مبتدی: conversion failed when converting date and / or time from character string خطای



kamiloted
شنبه 01 آبان 1395, 22:49 عصر
سلام دوستان با کد زیر یه جستجو انجام میدم.توی سیستم خودم با کانشن لوکال و اس کیو ال سرور. به خوبی جواب میده.اما تو سیستم مقصد دارای اس کیو ال اکسپرس

این خطا رو میده مشکل از چیه دوستان؟؟

conversion failed when converting date and / or time from character string

تایپ تاریخم :datetime2(7) هست



DataTable dt = new DataTable();
Database db = new Database();

dt = db.MySelect(" SELECT tbl_Pardakhti_Nasyeh.IdClient,tbl_Pardakhti_Nasyeh .NameClient,tbl_Pardakhti_Nasyeh.codeFactoor,tbl_P ardakhti_Nasyeh.TotalCost,tbl_Pardakhti_Nasyeh.Cos t, " +
"tbl_Pardakhti_Nasyeh.Date,tbl_Factoor_Foroosh.Takh fifKoll,tbl_Pardakhti_Nasyeh.Comments " +
"FROM tbl_Factoor_Foroosh INNER JOIN tbl_Pardakhti_Nasyeh ON tbl_Factoor_Foroosh.codeFactoor = tbl_Pardakhti_Nasyeh.codeFactoor where tbl_Pardakhti_Nasyeh.Date='" + txtDate1.Value.Value.Date + "' group by tbl_Factoor_Foroosh.codeFactoor,tbl_Factoor_Foroos h.TakhfifKoll,tbl_Pardakhti_Nasyeh.IdClient,tbl_Pa rdakhti_Nasyeh.NameClient,tbl_Pardakhti_Nasyeh.cod eFactoor,tbl_Pardakhti_Nasyeh.TotalCost,tbl_Pardak hti_Nasyeh.Cost,tbl_Pardakhti_Nasyeh.Date,tbl_Pard akhti_Nasyeh.Comments");
dt.Columns.Add("تاریخ", typeof(string));
foreach (DataRow row in dt.Rows)
{
string old = PersianDate.GetPdate(DateTime.Parse(row["Date"].ToString()));
row["تاریخ"] = old.ToString();
}
dt.Columns.Remove("Date");
dataGridView1.DataSource = dt;


ممنونم از همگی

Mahmoud.Afrad
یک شنبه 02 آبان 1395, 19:06 عصر
txtDate1.Value.Value.Date نوعش چیه؟ یک نمونه از مقدار داخلش رو بزار اینجا. و سعی کن قبل از خط 4 مقدارش رو به DateTime تبدیل کنید. و حتما از پارامترها برای ارسال داده به دیتابیس استفاده کنید.

kamiloted
یک شنبه 02 آبان 1395, 23:15 عصر
txtDate1.Value.Value.Date نوعش چیه؟ یک نمونه از مقدار داخلش رو بزار اینجا. و سعی کن قبل از خط 4 مقدارش رو به DateTime تبدیل کنید. و حتما از پارامترها برای ارسال داده به دیتابیس استفاده کنید.

سلام ممنونم.

این سمت اس کیوال: 2016-10-22 00:00:00.0000000

اینم سمت سی شارپم:
143133

Mahmoud.Afrad
دوشنبه 03 آبان 1395, 01:06 صبح
اگر فقط نیاز به تاریخ دارید
نوع ستون رو date انتخاب کنید. در اینصورت سمت سی شارپ باید تاریخ را به صورت میلادی به دیتابیس ارسال کنید. کنترلی که برای تاریخ استفاده میکنید بایست یک پراپرتی برای دریافت تاریخ میلادی داشته باشه. اگر نداشت باید تاریخ شمسی رو به میلادی تبدیل کنید. در همین انجمن جستجو کنید کد تبدیل هست.
یا اینکه نوع ستون رو varchar(8) انتخاب کنید و تاریخ شمسی(بدون /) رو ارسال کنید.

kamiloted
دوشنبه 03 آبان 1395, 14:57 عصر
اگر فقط نیاز به تاریخ دارید
نوع ستون رو date انتخاب کنید. در اینصورت سمت سی شارپ باید تاریخ را به صورت میلادی به دیتابیس ارسال کنید. کنترلی که برای تاریخ استفاده میکنید بایست یک پراپرتی برای دریافت تاریخ میلادی داشته باشه. اگر نداشت باید تاریخ شمسی رو به میلادی تبدیل کنید. در همین انجمن جستجو کنید کد تبدیل هست.
یا اینکه نوع ستون رو varchar(8) انتخاب کنید و تاریخ شمسی(بدون /) رو ارسال کنید.

ممنونم که وقت میزارید.
Date هم انتخاب کردم بی فایده بوده.
من تاریخ رو به صورت میلادی به سمت دیتابیس ارسال میکنم.

در حالت Date تاریخ بدین صورت ذخیره میشود:2016-10-22

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