ประเด็นที่ทำให้เราสับสนคือ
New ReportParameter(objitem.paraName, objitem.paraValue.ToString())
มันรับแต่ value ที่เป็น string คือมันรับ value อย่างเดียวจริงๆ อะไม่ได้ดู object type
สิ่งที่ต้อง concern คือ ถ้าใน store procedure เรารับ parameter เป็น datetime แล้วไซร้
ไอ้ตรงที่เราส่ง parameter จาก code behind นั้นมึงต้องคำนึงว่า store procedure สามารถ convert
ค่านั้นไปเป็น datetime object ได้หรือไม่
แต่ถ้าเลือกจากหน้า web report server ก็ชิวๆ เพราะเหมือน string ก็จริงแต่มันให้ค่า object type เป็น
datetime
ที่เครื่อง setting region date เป็น United Kingdom และ custom format เป็น dd-MM-yyyy ด้วย
แต่ในโปรแกรมบังคับ format ไว้ เป็น dd/MM/yyyy และเป็น th-TH
หน้าเว็บเลยได้แบบนี้
แอบฉลาดนะนิรับ parameter ตาม culture นั้นเลยถ้าใส่เป็น 2012 แบบนี้ error ด้วยนะ
ที่นี้มาดูบน report server บ้าง
เห็นไหมว่าเราสามารถใส่ได้ตาม culture บน server เลย
เป็นการยืนยันว่ามันส่ง parameter แบบมี object type จริงๆ นะเธออออ
ปล. เพราะใน object datetime มันจะเก็บ culture ไว้ให้ด้วยว่ามี culture เป็นอะไรที่มันฉลาดอีกนิดคือถ้าไม่ใช่ ค.ศ. มัน convert ให้ด้วย เลิฟๆ ไม่งั้นกูคงปวดกบาลอีกพอสมควร
ไม่มีความคิดเห็น:
แสดงความคิดเห็น