با سلام من تو دیتابیسم تاریخ رو به صورت ( 12 شهریور 1394 ) ثبت میکنم. آیا راهی هست بشه هنگام لود کردن در دیتا گرید ،فقط تاریخ های بعد از تاریخی رو که نوشتم نمایش داده بشن . دیتابیس SQL
ممنون میشم در صورت اطلاع پاسخ دهید.
با سلام من تو دیتابیسم تاریخ رو به صورت ( 12 شهریور 1394 ) ثبت میکنم. آیا راهی هست بشه هنگام لود کردن در دیتا گرید ،فقط تاریخ های بعد از تاریخی رو که نوشتم نمایش داده بشن . دیتابیس SQL
ممنون میشم در صورت اطلاع پاسخ دهید.
سلام
بعید میدونم انجام بشه چون مقدار رشته ای به زبان فارسی دارید که مثلا اسفند و اردیبهشت هر دو با الف شروع میشن و قطعا در بررسی مقادیر کوچکتر و بزرگتر دچار مشکل میشید. چرا از فرمت تاریخ خود SQL استفاده نمیکنید؟ و در زمان نمایش اطلاعات یک کلاس برای فرمت بندی نمایش تاریخ ایجاد کنید.
ممنونم همینکار رو میکنم . اگر تاریخ رو استاندارد وارد کنم (1395/08/05) مثل این ، چه جوری تاریخ های قبل یا بعدش رو فیلتر کنم ممنونم میشم راهنمایی کنید
اونوقت چون طول رشته تاریخ همیشه 10 کاراکتر ئه، حتی مقایسه رشته ای تاریخ با تاریخ هم نتیجه درستی میده و نیازی به تبدیل رشته به DateTime نیست.
مثلا SELECT با شرط های 'WHERE [fieldname] >= '1395/08/05 یا 'WHERE [fieldname] BETWEEN '1395/08/01' AND '1395/08/30 رو می توانید بکار ببرید.
ممنونم از پاسخ شما ولی درست متوجه نشدم چرا همیشه طول رشته تاریخ فرض به 10 کاراکتره .
نوع بکار گیری کد شما رو هم نفهمیدم و مشکل از منه ممکنه کمی بیشتر توضیح بدید سپاس
4 کاراکتر سال + 1 کاراکتر / + 2 کاراکتر ماه + 1 کاراکتر / + 2 کاراکتر روز = 10 کاراکتر
منظورم چیزی شبیه به اینه :
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim table As New DataTable
Using connection As New SqlConnection(connectionString)
connection.Open()
Using command As New SqlCommand("SELECT * FROM [YourTable] WHERE [YourField] >= @mindate", connection)
command.Parameters.AddWithValue("@mindate", "1395/08/01")
Using adapter As New SqlDataAdapter(command)
adapter.Fill(table)
End Using
End Using
End Using
DataGridView1.DataSource = table
End Sub
ممنونم از پاسخ کامل و آموزنده شما (عالی) سپاسگزارم
کد لود من کمی متفاوته تاریخ رو نتونستم لود کنم
Dim DB As New DataAccess
Dim Table As New DataTable
DB.ConOpen()
DB.SqlCmd.Parameters.AddWithValue("@Record", record)
DB.ExecReader("SELECT FullName As [نام], Tarikh As [تـاریخ ], ID As [ID] From TBL_Design WHERE Record = @Record " + str)
Table.Load(DB.SqlDR)
DataGridView1.DataSource = Table
DB.ConClose()
با این کد رکورد رو فیلتر کردم
چون برام مهمه و باید اینطور باشه ولی تاریخ های مورد نظرم رو هم برای این رکورد میخوام یعنی الویت لودم برای رکورد هست با تاریخ های خاص مثلا از یک تاریخ به بعد
لازم به توضیخ اینکه رکوردم رو از یک تیبل دیگه میگیرم
آخرین ویرایش به وسیله پرستو پارسایی : پنج شنبه 14 آذر 1398 در 19:56 عصر
سلام.دوست گرامی بعضی وقت ها برای اینکه پرفومنس (کارایی)یک سیستم بالا بره بهتره که کد ها در نرم افزار تعریف بشن تا توی دیتابیس
مثلا بهتره که شما تاریخ رو به صورت صحیح در دیتابیس ذخیره کنید و در واکشی اطلاعات اونجوری که میخواین به کاربر نمایش بدین
همین الان هم دیر نشده.با یک دستور Update و Replace میتونید دیتابیستون رو تصیح کنید و زمان فراخوانی اطلاعات مجددا با یک حلقه اطلاعات رو به دلخواه به کاربر نمایش بدین.
ممنونم از همه دوستان با راهنمایی شما ، مشکلم با اضافه کردن تاریخ صحیح رفع شد