1 ضمیمه
مشکل در جستجو بین دو تاریخ
سلام بچه ها
من میخواهم در پروژم بین دو تاریخ چستجو کنم ، کدم اینه :
SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=amval;Integrated Security=True");
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter("select * from insertamval where date>= @n AND date<= @m", con);
da.SelectCommand.Parameters.AddWithValue("@n", "%" + textBox1.Text + "%");
da.SelectCommand.Parameters.AddWithValue("@m", "%" + textBox2.Text + "%");
da.Fill(ds, "t1");
dataGridView1.DataSource = ds;
dataGridView1.DataMember = "t1";
ولی پیغام زیر میده :
ضمیمه 152563
لطفا راهنمایی کنید چیکار کنم ؟
نقل قول: مشکل در جستجو بین دو تاریخ
سلام از between استفاده کنید
select * from tbl where date between '1399/09/01' and '1399/09/30'
1 ضمیمه
نقل قول: مشکل در جستجو بین دو تاریخ
نقل قول:
نوشته شده توسط
محمد رضا فاتحی
سلام از between استفاده کنید
select * from tbl where date between '1399/09/01' and '1399/09/30'
بازم نشد :
ضمیمه 152564
نقل قول: مشکل در جستجو بین دو تاریخ
سلام
توی این کوئری، وقتی دارید پارامترها رو مقداردهی میکنید به علامت % نیاز نیست
ضمن اینکه دیتاتیبل t1 کجا هست و چطور تعریف شده؟
1 ضمیمه
نقل قول: مشکل در جستجو بین دو تاریخ
نقل قول:
نوشته شده توسط
Mahmoud Zaad
سلام
توی این کوئری، وقتی دارید پارامترها رو مقداردهی میکنید به علامت % نیاز نیست
ضمن اینکه دیتاتیبل t1 کجا هست و چطور تعریف شده؟
بازم پیغام میده :
ضمیمه 152565
نقل قول: مشکل در جستجو بین دو تاریخ
نحوه مقدار دهی پارامترتون اشتباه
da.Sele.........("n",textBox1.Text);
هر چند خطایی که داره میده مربوط به اینه که دارین یه رشته رو با پارامتر بزرگتر مساوی چک می کنید، ولی جالب اینه که تو کوئریتون نیست!!
نقل قول: مشکل در جستجو بین دو تاریخ
سلام.
من از این دستور sql استفاده می کنم و خوب کار می کنه.
با استفاده از entity framework.
Create proc SP_GetUserEnterAndExitDateTimeByDetails
@FullName nvarchar(128),
@ComputerName nvarchar(128),
@IpAddress nvarchar(128),
@FromDate nvarchar(128),
@ToDate nvarchar(128)
With encryption
As
Begin
Select * from VW_UserEnterAndExitLog
Where convert(nvarchar(128), EnterDateTime, 126) between @FromDate and @ToDate
and ComputerName like '%' + @ComputerName + '%'
and IpAddress like '%' + @IpAddress + '%'
and FullName like '%' + @FullName + '%'
End
go
نقل قول: مشکل در جستجو بین دو تاریخ
خیلی وقته با Ado کار نکردم ولی فک کنم توی کوئری برای پارامتر های رشته ای باید اون پارامتر رو بین دوتا کوتیشن قرار میدادیم، یعنی کوئری باید به این شکل باشه:"select * from insertamval where date>= '@n' AND date<= '@m'"
نقل قول: مشکل در جستجو بین دو تاریخ
نقل قول:
نوشته شده توسط
mr.sirwan
خیلی وقته با Ado کار نکردم ولی فک کنم توی کوئری برای پارامتر های رشته ای باید اون پارامتر رو بین دوتا کوتیشن قرار میدادیم، یعنی کوئری باید به این شکل باشه:
"select * from insertamval where date>= '@n' AND date<= '@m'"
بازم همون پیغام میده
نقل قول: مشکل در جستجو بین دو تاریخ
نقل قول:
نوشته شده توسط
voice.of.silence
سلام.
من از این دستور sql استفاده می کنم و خوب کار می کنه.
با استفاده از entity framework.
Create proc SP_GetUserEnterAndExitDateTimeByDetails
@FullName nvarchar(128),
@ComputerName nvarchar(128),
@IpAddress nvarchar(128),
@FromDate nvarchar(128),
@ToDate nvarchar(128)
With encryption
As
Begin
Select * from VW_UserEnterAndExitLog
Where convert(nvarchar(128), EnterDateTime, 126) between @FromDate and @ToDate
and ComputerName like '%' + @ComputerName + '%'
and IpAddress like '%' + @IpAddress + '%'
and FullName like '%' + @FullName + '%'
End
go
دوست عزیز من با sql ننوشتم ، لطفا کد سی شارپ بگین
نقل قول: مشکل در جستجو بین دو تاریخ
نقل قول:
نوشته شده توسط
محمد رضا فاتحی
نحوه مقدار دهی پارامترتون اشتباه
da.Sele.........("n",textBox1.Text);
هر چند خطایی که داره میده مربوط به اینه که دارین یه رشته رو با پارامتر بزرگتر مساوی چک می کنید، ولی جالب اینه که تو کوئریتون نیست!!
بازم همین پیغام میده
نقل قول: مشکل در جستجو بین دو تاریخ
یه روش غیر اصولی! :قهقهه: که میتونی برای مقایسه دو تاریخ استفاده کنی اینه که تاریخ اول و دوم رو عدد تبدیل کنیم.
تاریخ اول : 1399/01/01 ==>13990101
تاریخ دوم : 1399/01/31 ==>13990131
ایتم مورد نظر در تاریخ 1399/01/04 ==> 13990104
string date1 = "1399/01/01";
string date2 = "1399/01/31";
string date = "1399/01/04";
if (Convert.ToInt32(date.Replace("/", "")) <= Convert.ToInt32(date1.Replace("/", ""))
|| Convert.ToInt32(date.Replace("/", "")) >= Convert.ToInt32(date1.Replace("/", "")))
{
MessageBox.Show("date is in range !");
}
else
{
MessageBox.Show("date is Not in range !");
}
نقل قول: مشکل در جستجو بین دو تاریخ
اسم ستونی که انتخاب کردید (date) کلمه رزرو شده هست. در این صورت اسم ستون را بین [ ] قرار بدید.