PDA

View Full Version : جستجو بر اساس فیلد تاریخ در اکسس برای سی شارپ



Engineer_Yasin
سه شنبه 25 دی 1386, 22:53 عصر
جدولی در دیتابیس اکسس دارم که دارای فیلد تاریخ است. و با سی شارپ هم برنامه مینویسم
من در این جدول میخواهم جستجویی بر اساس تاریخ انجام دهم و خروجی بگیرم
من دستور sql زیر را می نویسم اما هیچ خروجی به من نمی دهد
اگه کسی بتونه بگه مشکل از کجاست ممنون می شم؟؟!!



select filed1 , date1 from table1 where date1=1/1/2008

سار
چهارشنبه 26 دی 1386, 09:19 صبح
این چیزی رو که نوشتی کجا و به چه شکلی مینویسی و اینکه نوع فیلدت چیه؟

babak23
چهارشنبه 26 دی 1386, 09:38 صبح
[quote=Engineer_Yasin;450988]جدولی در دیتابیس اکسس دارم که دارای فیلد تاریخ است. و با سی شارپ هم برنامه مینویسم
من در این جدول میخواهم جستجویی بر اساس تاریخ انجام دهم و خروجی بگیرم
من دستور sql زیر را می نویسم اما هیچ خروجی به من نمی دهد
اگه کسی بتونه بگه مشکل از کجاست ممنون می شم؟؟!!


select filed1 , date1 from table1 where date1=1/1/2008
[/code]

روش های پیشنهادی

ابتدا این دستور را بنویس ببین اصلا خروجی داری یا نه



select filed1 , date1 from table1


این را هم امتحان کن


select filed1 , date1 from table1 where date1="1/1/2008"


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



select filed1 , date1 from table1 where date1="2008/1/1"


اگه نشد شاید مشکل از جای دیگه باشه ؟

Engineer_Yasin
چهارشنبه 26 دی 1386, 17:35 عصر
[quote=Engineer_Yasin;450988]جدولی در دیتابیس اکسس دارم که دارای فیلد تاریخ است. و با سی شارپ هم برنامه مینویسم
من در این جدول میخواهم جستجویی بر اساس تاریخ انجام دهم و خروجی بگیرم
من دستور sql زیر را می نویسم اما هیچ خروجی به من نمی دهد
اگه کسی بتونه بگه مشکل از کجاست ممنون می شم؟؟!!


select filed1 , date1 from table1 where date1=1/1/2008
[/code]

روش های پیشنهادی

ابتدا این دستور را بنویس ببین اصلا خروجی داری یا نه



select filed1 , date1 from table1


این را هم امتحان کن


select filed1 , date1 from table1 where date1="1/1/2008"


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



select filed1 , date1 from table1 where date1="2008/1/1"


اگه نشد شاید مشکل از جای دیگه باشه ؟

من خودم تمام این روش ها رو امتحان کردم اما هیچ کدام جواب نمیده!
دستور اول هم که گفتید انجام دادم خروجی داره حتی وقتی شرط بر اساس فیل دیگه ای است جواب میده.حتی جایی دستورات زیر را نوشته بود آنها هم نوشتم جواب نداد!


[select filed1 , date1 from table1 where [date1]=[1/1/2008

اگه کسی یه برنامه ساده نوشته باشه که بر اساس فیلد تاریخ جستجو میکنه بگذارد در سایت ممنون می شم!
در ضمن نوع فیلد هم در دیتابیس از نوع date می باشد

Engineer_Yasin
چهارشنبه 26 دی 1386, 18:08 عصر
دوستان یک برنامه واسه تست نوشتم .
اگه کسی بتونه بگه کجاش مشکل داره ممنون می شم!

سار
پنج شنبه 27 دی 1386, 09:12 صبح
فیلدت DateTime هست دیگه مشکلی نیست من حدس میزنم کد زیر رو فراموش کرده بودی :


objDataSet.Clear();


من با SP کار کردم که کل برنامه رو هم برات می فرستم.

mahsa_999
پنج شنبه 27 دی 1386, 13:39 عصر
سلام
اگه نوع فیلد DateTime هست اینو امتحان کنید که بر اساس یه تاریخ خاص search می کنه:


SELECT field1, field2 where fieldDate =@date

);command1.Parameters.AddWithValue("@date",convert.ToDateTime(TextBox1.Text)

که الیته تاریخ رو در Run Time از TextBox می گیره. اگر هم که تاریخ مشخصه به جای @date تاریخ رو بذارید

mahsa_999
پنج شنبه 27 دی 1386, 19:32 عصر
من کد شما رو چک کردم. الان این کد درست کار می کنه:


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
namespace db
{
publicpartialclassForm1 : Form
{
public Form1()
{
InitializeComponent();
}
privateconststring _ConnectionString = "provider=Microsoft.JET.OLEDB.4.0; "
+ "data source=database1.mdb ";
privateconststring _CommandString1 = "SELECT fname,d FROM Table1 WHERE d=@d";
privateconststring _CommandString2 = "SELECT fname,d FROM Table1 ";
privateOleDbConnection objConnection = newOleDbConnection(_ConnectionString);
privateOleDbDataAdapter objDataAdapter=newOleDbDataAdapter();
privateOleDbDataAdapter objDataAdapter2 = newOleDbDataAdapter();
privateDataSet objDataSet = newDataSet();
privateDataSet objDataSet2 = newDataSet();

privatevoid button1_Click(object sender, EventArgs e)
{
objDataAdapter2.SelectCommand = newOleDbCommand();
objDataAdapter2.SelectCommand.Connection = objConnection;
objDataAdapter2.SelectCommand.CommandText = _CommandString1;
objDataAdapter2.SelectCommand.CommandType = CommandType.Text;
objDataAdapter2.SelectCommand.Parameters.AddWithVa lue("@d", Convert.ToDateTime(textBox1.Text));
objConnection.Open();
objDataAdapter2.Fill(objDataSet2, "Table1");
objConnection.Close();
dataGridView1.AutoGenerateColumns = true;
dataGridView1.DataSource = objDataSet2;
dataGridView1.DataMember = "Table1";

}
privatevoid Form1_Load(object sender, EventArgs e)
{
objDataAdapter.SelectCommand = newOleDbCommand();
objDataAdapter.SelectCommand.Connection = objConnection;
objDataAdapter.SelectCommand.CommandText = _CommandString2;
objDataAdapter.SelectCommand.CommandType = CommandType.Text;
objConnection.Open();
objDataAdapter.Fill(objDataSet, "Table1");
objConnection.Close();
dataGridView1.AutoGenerateColumns = true;
dataGridView1.DataSource = objDataSet;
dataGridView1.DataMember = "Table1";

}
}
}