var data = db.Query("SELECT Date, XAG FROM metals WHERE Data BETWEEN '@StartDate' AND '@EndDate'");
That should be
var data = db.Query("SELECT Date, XAG FROM metals WHERE Data BETWEEN @0 AND @1");
The Database helper parameter markers are numbers starting from 0 onwards. Named parameters won't work, and they won't work with any database provider if they are between single quotes. That turns them into literal strings.
dow7
Member
732 Points
449 Posts
When displaying a chart is it possible to let users select a custom period for the data?
Feb 10, 2012 02:19 PM|LINK
When displaying a chart is it possible to let users select a custom period for the data?
@{ var db = Database.Open("datab"); var data = db.Query("SELECT Date, XAG FROM metals WHERE ID > '4000'"); var myTheme = @"<Chart BorderlineDashStyle=""Solid"" BorderlineWidth=""1"" BorderlineColor=""#eeeeee"" BackSecondaryColor=""#ffffff"" BackColor=""#fbfbfb"" BackGradientStyle=""TopBottom"" Palette=""BrightPastel"" AntiAliasing=""All""> <ChartAreas> <ChartArea Name=""Default"" _Template_=""All"" BackColor=""Transparent""> <AxisY LineColor=""64, 64, 64, 64""> <MajorGrid Interval=""Auto"" LineColor=""#dddddd"" /> <LabelStyle Font=""Trebuchet MS, 8.25pt"" /> </AxisY> <AxisX LineColor=""64, 64, 64, 64""> <MajorGrid LineColor=""#dddddd"" /> <LabelStyle Font=""Trebuchet MS, 8.25pt"" /> </AxisX> </ChartArea> </ChartAreas> <Legends> <Legend _Template_=""All"" Alignment=""Center"" BackColor=""Transparent"" Docking=""Bottom"" Font=""Trebuchet MS, 8.25pt"" IsTextAutoFit =""False"" LegendStyle=""Row""></Legend> </Legends> </Chart>"; var myChart = new Chart(width:610, height:498, theme: myTheme) .AddTitle("XAG") .AddLegend() .AddSeries("XAG", chartType: "Line", xValue: data, xField: "Data", yValues: data, yFields: "XAG") .Write("png"); }Mikesdotnett...
All-Star
154955 Points
19872 Posts
Moderator
MVP
Re: When displaying a chart is it possible to let users select a custom period for the data?
Feb 11, 2012 07:27 PM|LINK
Provide them with some kind of DatePicker (jQuery is easy to use) and use parameters to set a date range in your SQL.
Beginning ASP.NET Web Pages with WebMatrix | My Site | Twitter
dow7
Member
732 Points
449 Posts
Re: When displaying a chart is it possible to let users select a custom period for the data?
Feb 12, 2012 01:44 PM|LINK
var data = db.Query("SELECT Date, XAG FROM metals WHERE Data BETWEEN '@StartDate' AND '@EndDate'");added also :@{
var StartDate = "22.11.2010"; //as default value
var EndDate = "09.02.2012"; //as default value
}
<form action="" method="post">
<table>
<tr>
<td><img src="@("chart")"/></td>
</tr>
<tr>
<td><input type="text" name="USD" size="14" value="@StartDate"/></td>
<td><input type="text" name="USD" size="14" value="@EndDate"/></td>
</tr>
</table>
</form>
But nothing is displayed. Can this be done even if some dates are missing (holidays...etc)?
Mikesdotnett...
All-Star
154955 Points
19872 Posts
Moderator
MVP
Re: When displaying a chart is it possible to let users select a custom period for the data?
Feb 12, 2012 03:32 PM|LINK
That should be
var data = db.Query("SELECT Date, XAG FROM metals WHERE Data BETWEEN @0 AND @1");The Database helper parameter markers are numbers starting from 0 onwards. Named parameters won't work, and they won't work with any database provider if they are between single quotes. That turns them into literal strings.
Beginning ASP.NET Web Pages with WebMatrix | My Site | Twitter