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

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

کاربر سایت

moonfa1392

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

مشکل در ثبت تاریخ

  • چهارشنبه 16 تیر 1395
  • 21:34
تشکر میکنم

با سلام

برای ثبت تاریخ روز هنگام درج پست مشکل دارم

من کد رو به این صورت می نویسم:

protected void Button3_Click(object sender, EventArgs e)
    {
        DAL d1 = new DAL();
        if (Page.IsValid == true)
        {
            string querytext = string.Format(
                "Insert Into Tbl_Comments(Name,Text,Email,DateReg,PostID,Website,Active) Values(N'{0}',N'{1}',N'{2}',{3},{4},N'{5}','False')",
                NameForm.Text, TextForm.Text, EmailForm.Text, DateTime.Now.ToShortDateString(), Request.QueryString["ID"], WebsiteForm.Text);
            d1.ExecNonQuery(querytext);
            Alert.InnerText = "نظر شما با موفقیت ثبت شد و پس از تایید مدیریت نمایش داده می شود.";

            NameForm.Text = "";
            TextForm.Text = "";
            EmailForm.Text = "";
            WebsiteForm.Text = "";
        }
    }

 

درواقع فیلد تاریخ رو توی دیتابیس با اسم DateReg و تایپ datetime گذاشتم و توی کدنویسی DateTime.Now.ToShortDateString() رو نوشتم. الان پست ثبت میشه اما تاریخ توی دیتابیس به این صورت ذخیره میشه و تاریخ روز رو نمیگیره :  1900-01-01 00:00:00.000

 

اگر به جای DateTime.Now.ToShortDateString() فقط بنویسم DateTime.Now هم اصلا پست ثبت نمیشه!

 

از پرشیا هم استفاده کردم ولی همین مشکل رو داشت تاریخ اینجوری ثبت میشد : 1900-01-01 00:00:00.000

 

ممنون میشم راهنمایی کنید مشکل از کجاست؟

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

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

ایمان مدائنی

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

  • پنجشنبه 17 تیر 1395
  • 07:41

به شکل زیر بنویسید

 string querytext = string.Format(
                "Insert Into Tbl_Comments(Name,Text,Email,DateReg,PostID,Website,Active) Values(N'{0}',N'{1}',N'{2}',{3},{4},N'{5}','False')",
                NameForm.Text, TextForm.Text, EmailForm.Text, DateTime.Now, Request.QueryString["ID"], WebsiteForm.Text);

 

کاربر سایت

moonfa1392

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

  • پنجشنبه 17 تیر 1395
  • 12:57

ممنون استاد اما عرض کردم اگر به جای DateTime.Now.ToShortDateString() فقط بنویسم DateTime.Now هم اصلا پست ثبت نمیشه!

هیچ اروری هم نمیده اما ثبت نمیشه

کاربر سایت

ایمان مدائنی

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

  • پنجشنبه 17 تیر 1395
  • 14:00

نوع ستون بانک را به Date تغییر دهید و تست کنید

کاربر سایت

moonfa1392

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

  • پنجشنبه 17 تیر 1395
  • 14:18

نوع ستون بانک رو به date تغییر دادم اما باز هم مطلب ثبت نمیشه. کد رو هم به این صورت نوشتم:

protected void Button3_Click(object sender, EventArgs e)
    {
        DAL d1 = new DAL();
        if (Page.IsValid == true)
        {
            string querytext = string.Format(
                "Insert Into Tbl_Comments(Name,Text,Email,DateReg,PostID,Website,Active) Values(N'{0}',N'{1}',N'{2}',{3},{4},N'{5}','False')",
                NameForm.Text, TextForm.Text, EmailForm.Text, DateTime.Now, Request.QueryString["ID"], WebsiteForm.Text);
            d1.ExecNonQuery(querytext);
            Alert.InnerText = "نظر شما با موفقیت ثبت شد و پس از تایید مدیریت نمایش داده می شود.";

            NameForm.Text = "";
            TextForm.Text = "";
            EmailForm.Text = "";
            WebsiteForm.Text = "";
        }
    }

 

 

کاربر سایت

ایمان مدائنی

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

  • پنجشنبه 17 تیر 1395
  • 20:10

Connection را open میکنید ؟

کد داخل d1 را قرا دهید

کاربر سایت

moonfa1392

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

  • جمعه 18 تیر 1395
  • 00:26

بفرمایید این هم کد کلاس DAL

 

public void ExecNonQuery(string sqltext)
    {
        SqlConnection k = new SqlConnection();
        k.ConnectionString = "Data Source=ASPSAZ;Initial Catalog=MAlHosseini.IR; Trusted_Connection=True;";
        k.Open();
        SqlCommand cmd = new SqlCommand();
        cmd.Connection = k;
        cmd.CommandText = sqltext;
        cmd.ExecuteNonQuery();
        k.Close();

    }
    public DataTable ExecuteQuery(string sqltext)
    {
        SqlConnection k = new SqlConnection();
        k.ConnectionString = "Data Source=ASPSAZ;Initial Catalog=MAlHosseini.IR; Trusted_Connection=True;";
        DataTable dt = new DataTable();
        SqlDataAdapter da = new SqlDataAdapter();
        da.SelectCommand = new SqlCommand();
        da.SelectCommand.Connection = k;
        da.SelectCommand.CommandText = sqltext;
        da.Fill(dt);
        return dt;

    }

 

البته فقط وقتی که برای درج تاریخ مینویسم DateTime.Now این مشکل وجود داره و پست ثبت نمیشه. وقتی میزنم DateTime.Now.ToShortDateString() پست بدون مشکل ثبت میشه ولی تاریخ روز رو نمیگیره و توی دیتابیس 01-01-1900 ثبت میشه. گاهی اوقات هم 04-01-1990 ثبت میشه

کاربر سایت

ایمان مدائنی

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

  • جمعه 18 تیر 1395
  • 07:28

همه چی درست به نظر میاد

یک تصویر از ححالت Design جدول در بانک قرار دهید لطفا

کاربر سایت

moonfa1392

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

  • جمعه 18 تیر 1395
  • 12:11

بفرمایید

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

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

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

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