我目前正在尝试使用一个使用SQLCommand执行存储过程并返回结果的类的成员来填充数据网格。使用存储过程从SQLCommand填充WPF数据网格
我的类成员(并在我认为问题在于)为:
public DataView DisplayHealthIndicator(DateTime startDate, DateTime endDate)
{
string queryString =
"DECLARE @RC int"
+ "DECLARE @date_from datetime = dateadd(day, 0, datediff(day, 0, getdate()))"
+ "DECLARE @date_to datetime = dateadd(day, 0, datediff(day, 0, getdate()))"
+ "EXECUTE @RC = [Testing].[marlin].[support_retrieve_workflow_history] "
+ "@date_from "
+ ",@date_to"
+ "GO";
using (SqlConnection connection = new SqlConnection(GetConnectionString()))
{
using (var cmd = new SqlCommand(queryString, connection))
{
connection.Open();
var reader = cmd.ExecuteReader();
var dt = new DataTable();
dt.Load(reader);
return dt.DefaultView;
}
}
}
和我使用调用该成员:
var db = new DatabaseHandle();
dataGridWorkflow.ItemsSource = db.DisplayHealthIndicator(DateTime.Now, DateTime.Now);
但是!我目前收到的错误:
Incorrect syntax near @date_from Must declare the scalar variable @RC
在一定程度上我理解的错误 - 我相信,我不能宣布我的SQLQuery字符串变量......但后来,我该怎么办呢?
我相当肯定,它并没有这方面的任何影响,但是在它的情况下,这是该存储过程的内容:
create procedure marlin.support_retrieve_workflow_history
(
@date_from datetime,
@date_to datetime
)
as
select dateadd(day, 0, datediff(day, 0, e.event_date)) as 'Date',
c.setting_secondary 'Workflow Category' ,
d.setting_main as 'Error Type' ,
sum(e.event_count) as 'Total'
from marlin.support_events e
inner join marlin.support_config c
on e.event_category = c.setting_code
and c.config_code = 60
inner join marlin.support_config d
on e.event_type = d.setting_code
and d.config_code = 70
where e.event_date between @date_from and @date_to
group by
e.event_date,
c.setting_secondary ,
d.setting_main
非常感谢。根据你从这个角度看到的情况 - 我还有其他哪些方面需要研究?试图学习! – Codingo 2012-08-11 12:13:30
不 - 我会说每当你尝试和使用的东西只是谷歌它,并检查MSDN文档的例子。代码看起来不错,否则 – Charleh 2012-08-11 12:14:37