PDA

View Full Version : مبتدی: select بین دو مقدار



nimamohammadi
دوشنبه 10 اسفند 1388, 17:08 عصر
سلام
من نیاز دارم یک جستجو داشته باشم که بین دو تاریخ (مثلا تاریخ اول هر ماه و تاریخ آخر هر ماه که کاربر خودش وارد می کنه چون تاریخ ثابت نیست ) عمل کنه ؟
آیا می تونم از دستور select به این شکل استفاده کنم؟

select name,family from account where ldate between textbox1.text and textbox2.text
ldate : فیلدی که می خوام جستجو بر اساس اون انجام بشه .
textbox1, textbox2 : می خوام تاریخ را در این دو فیلد وارد کنم برای جستجو.
account : نام جدول .

ramin_hashemi
دوشنبه 10 اسفند 1388, 18:54 عصر
"textbox2ۀ=>select * from table1 where tarikh>=textbox1 and tarikh"

tarikh : فیلدی که می خوام جستجو بر اساس اون انجام بشه .
textbox1, textbox2 : می خوام تاریخ را در این دو فیلد وارد کنم برای جستجو.
table1: نام جدول .

slashslash2009
دوشنبه 10 اسفند 1388, 20:08 عصر
اگر میخوای بین دو تاریخو به دست بیاری از between استفاده کنید و تاریخ کوچکترو اول بزارید بعدش تاریخ بزرگترو
"Select * from tblname where date BETWEEN'" + date1.text + "'AND'" + date2.text + "'"
اگر میخواید تاریخ شمسی در دیتا بیستون ذخیره کنید بهتره فیلدتون از جنس رشته ای باشه

hakelberfin
دوشنبه 10 اسفند 1388, 22:27 عصر
سعی کنید تاریخ رو به صورت رشته در یتابیس وارد نکنید. شما تاریخ رو از نوع DateTime در دیتابیس مشخص کنید و برای مقایسه ی دو تاریخ هم تاریخ ، تابعی بنویسید که تاریخ وارد شده توسط کاربر رو به میلادی تبدیل کنه و در دیتابیس ذخیره کنه.


CommandText = "SELECT * FROM TableName WHERE ReferDate >= '" + WindowsControlLibrary.Date.Format(this.textBoxMinD ate.Text.Trim(), '/') + "' AND ReferDate <= '" + WindowsControlLibrary.Date.Format(this.textBoxMaxD ate.Text.Trim(), '/') + "'";


WindowsControlLibrary.Date.Format تابعی که عمل تبدیل تاریخ شمسی به میلادی رو انجام میده

در این برنامه نحوه ی جستجو بر اساس نام و تاریخ نشان داده شده است.
دوست عزیز من در این برنامه از TextBox های پیش فرض استفاده کردم . اگر میخواهید برنامه نویسی را بصورت حرفه ای دنبال کنید حتما کنترل هایی جهت امور مختلف بسازید.
مثلا TextBox ی که فقط تاریخ را قبول کند و در صورت اشتباه وارد کردن تاریخ پیغام دهد.

slashslash2009
دوشنبه 10 اسفند 1388, 22:43 عصر
کدتو کع اصلاح کردی رو دوباره بزار ببینیم کجاش مشکل داره اگه مثل کد پست اولتون باشه که خیلی ایراد داره چون نباید تسک باکسارو در داخل دابل کتیشن " "بزاری باید باهاش جمع ببندی مثل جمع کردن دو مقدار رشته ای

nimamohammadi
سه شنبه 11 اسفند 1388, 08:50 صبح
cm.CommandText = "select * from account where ldate BETWEEN '" + textBox2.Text + "'AND '"+textBox3.Text+"' ";
cm.Connection = con;
da.SelectCommand = cm;

con.Open();
da.Fill(ds, "account");
con.Close();

dataGridView1.DataSource = ds;
dataGridView1.DataMember = "account";

slashslash2009
سه شنبه 11 اسفند 1388, 09:38 صبح
SqlCommand cmd2 = new SqlCommand("Select * from tblname where date BETWEEN @d1 AND @d2", con);
SqlDataAdapter da2 = new SqlDataAdapter(cmd2);
da2.SelectCommand.Parameters.Add("@d1", SqlDbType.Char).Value =date1.text;
da2.SelectCommand.Parameters.Add("@d2", SqlDbType.Char).Value =date2.text;
DataTable dt2 = new DataTable();
da2.Fill(dt2);
dataGridView1.DataSource = dt2;

mahdi206
سه شنبه 11 اسفند 1388, 23:18 عصر
[da.SelectCommand.CommandText = "select *from table1 where date>='" + startdate + "'and date <= '" + enddate + "'";