想通过修改sql语句查询时间的方式来选定时间查询报表。比如在textbox中输入2013-1-1这样的时间(#滑稽)
这并不是什么好方法,然而这样最直接。
现在的问题是在textBox输入时间之后就会跳到sqldbhelper然后显示 '=' 附近有语法错误。
最终做出来是个饼图。
有知道的大师指点一下不胜感激!!
sqldbhelper部分
public DataTable ExecuteDataTable(string sql, CommandType commandType, SqlParameter[] parameters)
{
DataTable data = new DataTable();
using (SqlConnection conn = new SqlConnection(connectionString))
{
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
cmd.CommandType = commandType;
if (parameters != null)
{
foreach (SqlParameter parameter in parameters)
{
cmd.Parameters.Add(parameter);
}
}
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
try
{
adapter.Fill(data);
}
catch (Exception e)
{
throw e;
}
}
}
return data;
}
报表部分
private void button1_Click(object sender, EventArgs e)
{
string sql = "select TypeName,IncomeExpendTypeName,AccountMoney,a.Remark from dbo.IncomeExpendDet a join dbo.IncomeExpendType b on a.IncomeExpendTypeid=b.IncomeExpendTypeid where IEDatetime between= '" + textBox1.Text + "'And ='" + textBox2.Text + "'";
SqlDbHelper sdh = new SqlDbHelper();
SqlParameter[] parameters = new SqlParameter[] { };
DataTable dt = sdh.ExecuteDataTable(sql, CommandType.Text, parameters);
this.reportViewer1.LocalReport.DataSources.Clear();
this.reportViewer1.LocalReport.DataSources.Add(new Microsoft.Reporting.WinForms.ReportDataSource("DataSet2", dt));
this.reportViewer1.RefreshReport();
}