مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

moonfa1392

عضویت از 1394/08/17

مشکل در درج تاریخ میلادی در دیتابیس

  • یکشنبه 3 بهمن 1395
  • 05:01
تشکر میکنم

سلام وقت بخیر

من وقتی نوع فیلد رو datetime قرار میدم تاریخ در دیتابیس ذخیره نمیشه فقط همشو 0.0.0.0.0. به این صورت صفر می نویسه

اما وقتی که نوع فیلد رو Nvarchar قرار میدم تاریخ به درستی درج میشه

برای درج تاریخ به این صورت عمل میکنم :

DateTime.Now.ToString()

حتی فقط DateTime.Now هم نوشتم ولی مشکل همینجاست که تاریخ رو فقط در نوع Nvarchar ذخیره میکنه...

ممنون میشم راهنمایی کنید

پاسخ های این پرسش

تعداد پاسخ ها : 13 پاسخ
کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • یکشنبه 3 بهمن 1395
  • 08:42

مشکل وجود داره

تصویری از Design جدول و کد درج قرار دهید

کاربر سایت

moonfa1392

عضویت از 1394/08/17

  • یکشنبه 3 بهمن 1395
  • 08:58

این تصویر Design جدول هست:

و این کد درج هست:

 protected void Button1_Click(object sender, EventArgs e)
    {
        DAL run = new DAL();
        if (Page.IsValid == true)
        {
            string querytext = string.Format(
                "Insert Into tbl_news(title,karfarma,mojri,subject,small_text,picture,full_text,keywords,solar_datereg,datereg,date_update,active,pic1,pic2,pic3,pic4) Values(N'{0}',N'{1}',N'{2}',N'{3}',N'{4}',N'{5}',N'{6}',N'{7}',N'{8}',N'{9}',N'{10}','{11}',N'{12}',N'{13}',N'{14}',N'{15}')",
                title.Text, karfarma.Text, mojri.Text, subject.Text, small_text.Text, picture.Text, full_text.Text, keywords.Text,solar_datereg.Value, DateTime.Now.ToString(), DateTime.Now.ToString(), active.Value, pic1.Text, pic2.Text, pic3.Text, pic4.Text);
            run.ExecNonQuery(querytext);
            title.Text = "";
            karfarma.Text = "";
            mojri.Text = "";
            subject.Text = "";
            small_text.Text = "";
            picture.Text = "";
            full_text.Text = "";
            active.Value = "";
            pic1.Text = "";
            pic2.Text = "";
            pic3.Text = "";
            pic4.Text = "";
            lblResult.Text = "با موفقیت ذخیره شد!";
        }
    }

وقتی که DateType رو برابر با Nvarchar میذارم تاریخ به این صورت درج میشه :   11/3/1395 12:09:17 ق.ظ

وقتی که DateType رو برابر با datetime میذارم تاریخ به این صورت درج میشه و تاریخ روز نمیگیره :  1900-01-01 00:00:00.000

کاربر سایت

moonfa1392

عضویت از 1394/08/17

  • یکشنبه 3 بهمن 1395
  • 09:27

جالب اینکه اگر varchar بذارم به این صورت ذخیره میشه استاد :  Jan  1 1900 12:00AM

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • یکشنبه 3 بهمن 1395
  • 09:33

از نوع DateTime قرار دهید و در query قبلش n نزارید

کاربر سایت

moonfa1392

عضویت از 1394/08/17

  • یکشنبه 3 بهمن 1395
  • 09:37

این کار رو هم کردم استاد باز به این شکل ذخیره میکنه : 1900-01-01 00:00:00.00

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • یکشنبه 3 بهمن 1395
  • 09:47

انجام بدید و کدتون رو که انجام دادید قرار دهید

کاربر سایت

moonfa1392

عضویت از 1394/08/17

  • یکشنبه 3 بهمن 1395
  • 09:52
protected void Button1_Click(object sender, EventArgs e)
   {
       DAL run = new DAL();
       if (Page.IsValid == true)
       {
           string querytext = string.Format(
               "Insert Into tbl_news(title,karfarma,mojri,subject,small_text,picture,full_text,keywords,solar_datereg,datereg,date_update,active,pic1,pic2,pic3,pic4) Values(N'{0}',N'{1}',N'{2}',N'{3}',N'{4}',N'{5}',N'{6}',N'{7}',N'{8}',N'{9}','{10}','{11}',N'{12}',N'{13}',N'{14}',N'{15}')",
               title.Text, karfarma.Text, mojri.Text, subject.Text, small_text.Text, picture.Text, full_text.Text, keywords.Text,solar_datereg.Value, DateTime.Now.ToString(), DateTime.Now.ToString(), active.Value, pic1.Text, pic2.Text, pic3.Text, pic4.Text);
           run.ExecNonQuery(querytext);
           title.Text = "";
           karfarma.Text = "";
           mojri.Text = "";
           subject.Text = "";
           small_text.Text = "";
           picture.Text = "";
           full_text.Text = "";
           active.Value = "";
           pic1.Text = "";
           pic2.Text = "";
           pic3.Text = "";
           pic4.Text = "";
           lblResult.Text = "با موفقیت ذخیره شد!";
       }
   }

شماره 10 مال datereg هست که هم به این صورت تست کردم {10} کلا ارور میده و هم به این صورت تست کردم '{10}' تاریخ به همون صورت 1900 .... ذخیره میشه

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • یکشنبه 3 بهمن 1395
  • 09:57

دیگه نباید ,ToString بزارید دوست من

کاربر سایت

moonfa1392

عضویت از 1394/08/17

  • یکشنبه 3 بهمن 1395
  • 10:07

استاد وقتی که ToString رو برمیدارم مطلب ذخیره نمیشه...

هیچ اروری نمیده فقط ادیتور مخفی میشه و پست هم ثبت نمیشه!

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

این جواب خودتون بود:

من کدتون رو دیدم ولی متاسفانه نتوسنتم اطلاعاتی ثبت کنم و بعد از زدن کلید ثبت کنترل های روی صفحه مخفی میشدند

من بخاطر این مشکل یک کاری کردم که فکر کنم اصلا اصولی نیست. درواقع با Persia تاریخ شمسی رو nvarchar ذخیره میکنم توی بانک. برای نمایش تاریخ مشکلی به وجود نمیاد اما برای فراخوانی پست ها به ترتیب تاریخ مشکل وجود میاره!
کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • یکشنبه 3 بهمن 1395
  • 10:25
//cmd is sql command
cmd.CommandText = "INSERT INTO dbo.Person(birthdate) VALUES(@Birthdate);";

cmd.Parameters.Add("@Birthdate", SqlDbType.Date).Value = dateTimePicker.Value.Date;

//con is sql connection
con.Open();
cmd.ExecuteNonQuery();
con.Close();

string connectionString = ".......";
string query = "INSERT INTO dbo.Person(birthdate) VALUES(@Birthdate);";

using (SqlConnection con = new SqlConnection(connectionString))
using (SqlCommand cmd = new SqlCommand(query, conn))
{
     cmd.Parameters.Add("@Birthdate", SqlDbType.Date).Value = dateTimePicker.Value.Date;

     con.Open();
     cmd.ExecuteNonQuery();
     con.Close();
} 

کاربر سایت

moonfa1392

عضویت از 1394/08/17

  • یکشنبه 3 بهمن 1395
  • 10:28

استاد الان من دقیقا این کد ها رو چیکار باید بکنم؟ surprise

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • یکشنبه 3 بهمن 1395
  • 10:31
بعنوان نمونه گذاشتم تا ببینید و ایده بگیرید تاریخ را اینگونه باید ذخیره کنید
کاربر سایت

moonfa1392

عضویت از 1394/08/17

  • یکشنبه 3 بهمن 1395
  • 10:40

دوتا سفارشی که دستمه آخرین سفارش های وب فرمه که گرفتم

واقعا از وب فرم خسته شدم با این دردسر هاش

این ماه حتی اگه شده تمام خرج و مخارج رو قرض کنم سفارش نمیگیرم تا آموزش های MVC که فرستادید رو ببینم و دیگه شروع به کار با MVC کنم فکر میکنم خیلی راحت تر و بهتر باشه

مشکل من اینه که webform رو هم اصولی یاد نگرفتم فقط با این روش ADO بلدم بنویسم سایت هارو این همه سایت و پنل با webform نوشتم و تحویل دادم هنوز اینجور مشکلاتی دارم :(

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)