PDA

View Full Version : سوال: جستجو با تاریخ شمسی در دیتابیس(کدی که نوشتم چه ایرادی داره ؟؟؟)



hackman
سه شنبه 07 خرداد 1392, 09:41 صبح
سلام من با این کد میخوام از اطلاعات دیتابیس گزارش بگیرم

اما اررور میده :


DateTime startDate = Persia.Calendar.ConvertToGregorian(int.Parse(time1 sal_txtBox.Text), int.Parse(time1mah_txtBox.Text), int.Parse(time1rooz_txtBox.Text), DateType.Persian);

DateTime endDate = Persia.Calendar.ConvertToGregorian(int.Parse(time2 sal_txtBox.Text), int.Parse(time2mah_txtBox.Text), int.Parse(time2rooz_txtBox.Text), DateType.Persian);
try
{
cnn.Open();
}
catch (Exception)
{
MessageBox.Show("ارتباط با سرور قطع میباشد", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
SqlCommand cm1 = new SqlCommand("SELECT * FROM outerTable WHERE outerTime BETWEEN "+startDate+"AND"+endDate, cnn);


SqlDataReader dr = cm1.ExecuteReader();
int i = 1;
while (dr.Read())
{
string saat = Convert.ToDateTime(dr["outerTime"]).ToShortTimeString();
ListViewItem lvi = new ListViewItem(i.ToString());
lvi.SubItems.Add(dr["cardNo"].ToString());
lvi.SubItems.Add(dr["carNo"].ToString());
lvi.SubItems.Add(dr["tarikh"].ToString());
lvi.SubItems.Add(saat);
lvi.SubItems.Add(dr["price"].ToString());
lvi.SubItems.Add(dr["Duration"].ToString());
lvi.SubItems.Add(dr["operator"].ToString());
listView1.Items.Add(lvi);
i++;
}
dr.Close();
cnn.Close();


روز و ماه و سال رو به صورت دستی تو تکست باکس وارد میکنم و تبدیل میکنم به تاریخ میلادی

اما این اررور رو میده :

Incorrect syntax near '12'.

tooraj_azizi_1035
سه شنبه 07 خرداد 1392, 10:08 صبح
سعی کن وقتی خطا میده CommandText شیء cm1 را ببینی چیه ایرادی Syntax ای داره. مشکل از startDate , endate که ممکننه مقدار نگرفته باشند.

hackman
سه شنبه 07 خرداد 1392, 10:15 صبح
این command text :
درسته دیگه !!!

ADO.NET:Execute Reader "SELECT * FROM outerTable WHERE outerTime BETWEEN 5/28/2013 12:00:00 AMAND5/29/2013 12:00:00 AM"
The command text "SELECT * FROM outerTable WHERE outerTime BETWEEN 5/28/2013 12:00:00 AMAND5/29/2013 12:00:00 AM" was executed on connection "Data Source= ;Network Library = DBMSSOCN ;Initial Catalog= Parking_Database ;user ID = parking ; Password = 123456789 ", building a SqlDataReader.
Time: 5/29/2013 10:47:06 AM
Thread:Main Thread[4216]

hackman
سه شنبه 07 خرداد 1392, 10:17 صبح
تو startDate چه جوری میتونم ساعتشو تغییر بدم ؟

مثلا بشه ساعت 24:00:00

tooraj_azizi_1035
سه شنبه 07 خرداد 1392, 12:54 عصر
به نظر باید تاریخ و زمان رو داخل '' قرار بدی:
BETWEEN '20110311 12:00:01' AND '20110418 16:00:00'

و برای تغییر هم چون زمان غیر قابل تغییر است باید مقداری جدید بدید:

DateTime s = ...;
TimeSpan ts = new TimeSpan(10, 30, 0);
s = s.Date + ts;


s will now be the same date, but at 10.30am.