ต้องการ search หาวันที่ โดยหาเป็น พ.ศ. ค่ะ asp.net c#
Code (C#)
DateTime date1 = Convert.ToDateTime(TextBox1.Text);
sqlProduct = " SELECT id,name,note,Dpep FROM pep WHERE Dpep = convert(datetime, '" + string.Format("{0}/{1}/{2}", date1.Month, date1.Day, date1.Year) + "', 101)" ;
ตามนี้น่าจะได้นะครับ
Date :
2011-04-25 13:32:21
By :
mi16
คุณ mi16ค่ะ
ฟ้อง Error String was not recognized as a valid DateTime. ค่ะ
ที่ DateTime date1 = Convert.ToDateTime(TextBox1.Text);
Date :
2011-04-25 13:49:13
By :
mushroomsn
อ่อแสดงว่าป้อนเป็น พ.ศ. ใช่มั้ยครับ
ขออภัยค่าถ้าป้อนเป็นพ.ศ.อาจต้องเพิ่มเติมนิดหน่อย
ตามนี้ครับ
Code (C#)
DateTime date1 = DateTime.ParseExact(textBox1.Text, "d/M/yyyy", new System.Globalization.CultureInfo("th-TH"));
sqlProduct = " SELECT id,name,note,Dpep FROM pep WHERE Dpep = convert(datetime, '" + string.Format("{0}/{1}/{2}", date1.Month, date1.Day, date1.Year) + "', 101)";
ถ้าป้อน 1/1/2554 ก็จะได้ sql เป็นตามนี้
SELECT id,name,note,Dpep FROM pep WHERE Dpep = convert(datetime, '1/1/2011', 101)
Date :
2011-04-25 14:18:20
By :
mi16
คุณ mi16 ค่ะ
ยังฟ้อง Error String was not recognized as a valid DateTime. ค่ะ
ที่
DateTime date1 = DateTime.ParseExact(TextBox1.Text, "d/M/yyyy", new System.Globalization.CultureInfo("th-TH"));
ตรง DateTime ค่ะ
Date :
2011-04-25 14:31:33
By :
mushroomsn
TextBox1 ป้อนค่าอะไรหรือครับ
ผมลอง 1/1/2554 แล้วไม่ error จริงๆครับ
Date :
2011-04-25 14:35:57
By :
mi16
คุณ mi16 ค่ะ
ยังไม่ได้ใส่ข้อมูลเลยค่ะ พอ run ก็ Error String was not recognized as a valid DateTime. เลยค่ะ
Date :
2011-04-25 14:51:49
By :
mushroomsn
ผมไม่แน่ใจนะครับว่าคุณเขียนโค๊ดส่วน run ไว้ตรง event ไหนแต่มันน่าจะมีข้อมูล TextBox1 ก่อนค่อย run ครับ
ยังไง เขียนดักเพิ่มไว้ก็ได้ครับ เพิ่มเป็นแบบนี้ครับ
Code (C#)
if ( TextBox1.Text.Trim() != "" )
{
DateTime date1 = DateTime.ParseExact(TextBox1.Text, "d/M/yyyy", new System.Globalization.CultureInfo("th-TH"));
sqlProduct = " SELECT id,name,note,Dpep FROM pep WHERE Dpep = convert(datetime, '" + string.Format("{0}/{1}/{2}", date1.Month, date1.Day, date1.Year) + "', 101)";
// ...... code ต่อไป
}
Date :
2011-04-25 15:52:27
By :
mi16
คุณ mi16 ค่ะ
ไม่ Error ค่ะ แต่ search แล้วใส่ค่าจากใน Textbox แล้วค่าไม่โชว์
Code ทั้งหมดค่ะ
Code (C#)
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
BindData();
}
}
void BindData()
{
string StrConn = WebConfigurationManager.ConnectionStrings["connection"].ToString();
SqlConnection Conn = new SqlConnection(StrConn);
Conn.Open();
string sqlProduct;
//search หาวันที่ตรงนี้ค่ะ *****************************************
if (TextBox1.Text.Trim() != "")
{
DateTime date1 = DateTime.ParseExact(TextBox1.Text, "d/M/yyyy", new System.Globalization.CultureInfo("th-TH"));
sqlProduct = " SELECT id,name,note,Dpep FROM pep WHERE Dpep = convert(datetime, '" + string.Format("{0}/{1}/{2}", date1.Month, date1.Day, date1.Year) + "', 103)";
// ...... code ต่อไป
SqlDataAdapter da = new SqlDataAdapter(sqlProduct, Conn);
DataSet ds = new DataSet();
da.Fill(ds, "pep");
GridView1.DataSource = ds.Tables["pep"];
GridView1.DataBind();
}
}
ประวัติการแก้ไข 2011-04-25 16:06:42
Date :
2011-04-25 16:05:57
By :
mushroomsn
ผมไม่แน่ใจว่า data ใน database เป็นอย่างไรนะครับ
ลองใส่ response.write(sqlProduct) แืทน // ...... code ต่อไป
แล้ว run ดูมันน่าจะแสดง sql ที่ส่งไปทำงาน
ลองเอา sql นั้นไำป run กับ database ตรงๆผ่าน Sql Management Studio ดูครับ
ดูว่าผลออกมามีข้อมูลหรือป่าว
Date :
2011-04-25 16:22:22
By :
mi16
อีกจุดที่อยากแนะนำให้เพิ่มครับ (คงไม่ว่ากัน)
ผมคิดว่าไม่ควร BindData ตั้งแต่เปิดนะครับ
เพราะว่าเปิดมา TextBox1 มันก็ไม่มีค่าอยู่แล้ว
อาจจะทำ button เพื่อ Bind หรือ code ตอนที่กด enter ที่ TextBox1 นะครับ
Date :
2011-04-25 16:23:53
By :
mi16
คุณ mi16 ค่ะ
คราวนี้เอา BindData ออกแล้วคะ แต่ ฟ้อง Error String was not recognized as a valid DateTime. เหมือนเดิมค่ะ
พอ ใส่ค่าใน TextBox1 เช่น 1/1/2554 แล้ว กด button ก็เกิดError String was not recognized as a valid DateTime ค่ะ
Code (C#)
protected void Page_Load(object sender, EventArgs e)
{
string StrConn = WebConfigurationManager.ConnectionStrings["connection"].ToString();
SqlConnection Conn = new SqlConnection(StrConn);
Conn.Open();
string sqlProduct;
if (TextBox1.Text.Trim() != "")
{
DateTime date1 = DateTime.ParseExact(TextBox1.Text, "dd/MM/yyyy", new System.Globalization.CultureInfo("th-TH"));
sqlProduct = " SELECT id,name,note,Dpep FROM pep WHERE Dpep = convert(datetime, '" + string.Format("{0}/{1}/{2}", date1.Month, date1.Day, date1.Year) + "', 103)";
Response.Write(sqlProduct);
// ...... code ต่อไป
SqlDataAdapter da = new SqlDataAdapter(sqlProduct, Conn);
DataSet ds = new DataSet();
da.Fill(ds, "pep");
GridView1.DataSource = ds.Tables["pep"];
GridView1.DataBind();
}
}
Date :
2011-04-25 16:44:28
By :
mushroomsn
ลองแบบนี้ก่อนจะได้มั้ยครับ
Code (C#)
protected void Page_Load(object sender, EventArgs e)
{
string StrConn = WebConfigurationManager.ConnectionStrings["connection"].ToString();
SqlConnection Conn = new SqlConnection(StrConn);
Conn.Open();
string sqlProduct;
if (TextBox1.Text.Trim() != "")
{
sqlProduct = " SELECT id,name,note,Dpep FROM pep WHERE Dpep = convert(datetime, '1/1/2554', 103)";
SqlDataAdapter da = new SqlDataAdapter(sqlProduct, Conn);
DataSet ds = new DataSet();
da.Fill(ds, "pep");
GridView1.DataSource = ds.Tables["pep"];
GridView1.DataBind();
}
}
Date :
2011-04-25 17:03:54
By :
mi16
คุณ mi16 ค่ะ
พอ run แล้ว ข้อมูลที่มี วันที่ 1/1/2554 โชว์ขึ้นมาใช่ไหมค่ะ
แต่นี้ไม่ไม่ข้อมูลใดโชว์ขึ้นมาเลยค่ะ
Date :
2011-04-25 17:22:01
By :
mushroomsn
อ่อผมนึกออกอย่างแล้วครับ
ผมว่ามันเป็น datetime งั้นลองอันนี้หน่อยครับ
Code (C#)
protected void Page_Load(object sender, EventArgs e)
{
string StrConn = WebConfigurationManager.ConnectionStrings["connection"].ToString();
SqlConnection Conn = new SqlConnection(StrConn);
Conn.Open();
string sqlProduct;
if (TextBox1.Text.Trim() != "")
{
sqlProduct = " SELECT id,name,note,Dpep FROM pep WHERE Convert(Date,Dpep) = convert(Date, '1/1/2554', 103)";
SqlDataAdapter da = new SqlDataAdapter(sqlProduct, Conn);
DataSet ds = new DataSet();
da.Fill(ds, "pep");
GridView1.DataSource = ds.Tables["pep"];
GridView1.DataBind();
}
}
Date :
2011-04-25 17:26:56
By :
mi16
ค่ะ คุณ mi16 ได้ไม่ยังไงจะมาตอบพรุ่งนี้นะคะ
วันนี้ขอบคุณมากจิงๆค่ะ
Date :
2011-04-25 17:36:11
By :
mushroomsn
คุณ mi16 ค่ะ
ใช้ Code แบบนี้ค่ะ
Code (C#)
if (TextBox1.Text.Trim() != "")
{
DateTime date1 = DateTime.ParseExact(TextBox1.Text, "d/M/yyyy", new System.Globalization.CultureInfo("th-TH"));
sqlProduct = " SELECT id,name,note,Dpep FROM pep WHERE Dpep = convert(datetime, '" + string.Format("{0}/{1}/{2}", date1.Month, date1.Day, date1.Year) + "', 103)";
SqlDataAdapter da = new SqlDataAdapter(sqlProduct, Conn);
DataSet ds = new DataSet();
da.Fill(ds, "pep");
GridView1.DataSource = ds.Tables["pep"];
GridView1.DataBind();
}
โชว์ข้อมูลค่ะ แต่โชว์เฉพาะวันที่ เลขเดียวค่ะ เช่น 1/1/2554 หรือ 2/2/2554
แต่ถ้า เป็น 12/2/2554 หรือ 22/12/2554 ข้อมูลไม่โชว์ค่ะ ลอง d/M/yyyy เป็น dd/mm/YYYY แล้วแต่ฟ้อง Error ค่ะ
ประวัติการแก้ไข 2011-04-26 10:32:59
Date :
2011-04-26 10:19:39
By :
mushroomsn
ทำได้แล้วค่ะ แค่เปลี่ยนเป็น 101
Date :
2011-04-26 10:35:43
By :
mushroomsn
อ่ะครับ ขออภัยหากแนะนำผิดพลาดไป
Date :
2011-04-26 12:25:37
By :
mi16
คุณ mi16 ค่ะ
ต้องขอบคุณมากกว่า ที่ช่วยเหลือ ขอบคุณสำหรับคำแนะนำมากๆนะคะ
Date :
2011-04-26 17:04:59
By :
mushroomsn
Load balance : Server 01